title: C#: Searching through arrays
body: <p>I have a dvd app that stores dvds and blu-rays, I want to search the arrays by director. Below is the code for the inventory class  I have seen many different ways to do this.  There seems to be some debate as the best/most efficient way to accomplish this, any suggestions?</p>
  
  <p>Blockquote</p>
  
  <pre><code>    namespace MovieInventoryApplication
  {
  class Inventory
  {
      public Bluray[] BlurayMovies;
      public DVD[] DVDMovies;
  
      private int blurayCount;
      private int dvdCount;
  
      public Inventory()
      {
          BlurayMovies = new Bluray[5];
          DVDMovies = new DVD[5];
  
          blurayCount = 0;
          dvdCount = 0;
      }
  
      public void AddBluray()
      {
          String strTitle;
          int intReleaseYear;
          int intRunningTimeMinutes;
          String strDirector;
          int intPrice;
          int intRegionCode;
  
          try
          {
              Console.Write("Enter a title: ");
              strTitle = Console.ReadLine();
  
              Console.Write("Enter a release year: ");
              intReleaseYear = Convert.ToInt32(Console.ReadLine());
  
              Console.Write("Enter the running time in minutes: ");
              intRunningTimeMinutes = Convert.ToInt32(Console.ReadLine());
  
              Console.Write("Enter the directors name: ");
              strDirector = Console.ReadLine();
  
              Console.Write("Enter a rental price: ");
              intPrice = Convert.ToInt32(Console.ReadLine());
  
              BlurayMovies[blurayCount] = new Bluray(strTitle, intReleaseYear, intRunningTimeMinutes, strDirector, intPrice);
              blurayCount++;
  
              Console.Write("Enter the DVD region code: ");
              intRegionCode = Convert.ToInt32(Console.ReadLine());
  
              DVDMovies[dvdCount] = new DVD(strTitle, intReleaseYear, intRunningTimeMinutes, strDirector, intPrice, intRegionCode);
              dvdCount++;
          }
          catch (FormatException FormatException)
          {
              Console.WriteLine(FormatException.Message);
              Console.WriteLine("Please enter a number in this field.");
          }
      }
  
      public void AddDVD()
      {
          String strTitle;
          int intReleaseYear;
          int intRunningTimeMinutes;
          String strDirector;
          int intPrice;
          int intRegionCode;
  
          try
          {
              Console.Write("Enter a title: ");
              strTitle = Console.ReadLine();
  
              Console.Write("Enter a release year: ");
              intReleaseYear = Convert.ToInt32(Console.ReadLine());
  
              Console.Write("Enter the running time in minutes: ");
              intRunningTimeMinutes = Convert.ToInt32(Console.ReadLine());
  
              Console.Write("Enter the directors name: ");
              strDirector = Console.ReadLine();
  
              Console.Write("Enter a rental price: ");
              intPrice = Convert.ToInt32(Console.ReadLine());
  
              Console.Write("Enter the region code: ");
              intRegionCode = Convert.ToInt32(Console.ReadLine());
  
              DVDMovies[dvdCount] = new DVD(strTitle, intReleaseYear, intRunningTimeMinutes, strDirector, intPrice, intRegionCode);
              dvdCount++;
          }
  
          catch (FormatException FormatException)
          {
              Console.WriteLine(FormatException.Message);
              Console.WriteLine("Please enter a number in this field.");
          }
      }
  
      public void ListAllBluray()
      {
          int position = 0;
  
          while (BlurayMovies[position] != null)
          {
              Console.WriteLine(position + " " + BlurayMovies[position].strTitle);
  
              position++;
          }
      }
  
      public void ListAllDVD()
      {
          int position = 0;
  
          while (DVDMovies[position] != null)
          {
              //position + 1 + " " + 
              Console.WriteLine(position + " " + DVDMovies[position].strTitle);
  
              position++;
          }
      }
  
      public void BlurayInfo(int position)
      {
          Console.WriteLine("Title: {0}", DVDMovies[position].strTitle);
          Console.WriteLine("Release Year: {0}", DVDMovies[position].intReleaseYear);
          Console.WriteLine("Running Time (Minutes): {0}", DVDMovies[position].intRunningTimeMinutes);
          Console.WriteLine("Director: {0}", DVDMovies[position].strDirector);
          Console.WriteLine("Price: {0}", DVDMovies[position].intPrice);
      }
  
      public void DVDInfo(int position)
      {
          Console.WriteLine("Title: {0}", DVDMovies[position].strTitle);
          Console.WriteLine("Release Year: {0}", DVDMovies[position].intReleaseYear);
          Console.WriteLine("Running Time (Minutes): {0}", DVDMovies[position].intRunningTimeMinutes);
          Console.WriteLine("Director: {0}", DVDMovies[position].strDirector);
          Console.WriteLine("Price: {0}", DVDMovies[position].intPrice);
          Console.WriteLine("Region Code: {0}", DVDMovies[position].intRegionCode);
      }
  }
  </code></pre>
  
  <p>}</p>