title: C# Read a particular value from CSV file
body: <p>I am a learner in C#. I want to read a particular value from the CSV file. I have learned the getting the csv file into a datatable through browsing. Please see the following code (Thanks to surendra jha) and my CSV file format. Say, I want to get what is the 'Volume' for 'ID' = 90.</p>
  
  <p><strong>CSV file</strong></p>
  
  <pre><code>ID:Volume:Name
  100:5600:A
  95:5000:B
  90:4500:C
  85:4000:D
  </code></pre>
  
  <p><strong>Code for getting all the values:</strong></p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.IO;
  using System.Data;              
  namespace DVHConsolePrj
  {
     class Program
       {
         static void Main(string[] args)
           {
               readCsvFileData();
            }
          static void readCsvFileData()
           {            
              string path = @"C:\IDVolumeName.txt";           
              StreamReader streamreader = new StreamReader(path);
              DataTable datatable = new DataTable();
              int rowcount = 0;
              string[] columnname = null;
              string[] streamdatavalue = null;
              while (!streamreader.EndOfStream)
              {
                 string streamrowdata = streamreader.ReadLine().Trim();
                   if (streamrowdata.Length &gt; 0) 
                      {
                         streamdatavalue = streamrowdata.Split(':'); 
                         if (rowcount == 0)
                         {
                            rowcount = 1;
                            columnname = streamdatavalue;
                            foreach (string csvheader in columnname)
                            {
                               DataColumn datacolumn = new DataColumn(csvheader.ToUpper(), typeof(string));
                               datacolumn.DefaultValue = string.Empty;
                               datatable.Columns.Add(datacolumn);
                             }
                          }
                          else
                          {
                            DataRow datarow = datatable.NewRow();
                            for (int i = 0; i &lt; columnname.Length; i++)
                            {
                             datarow[columnname[i]] = streamdatavalue[i] == null ?             string.Empty : streamdatavalue[i].ToString();
                             }
                             datatable.Rows.Add(datarow);
                           }
                     }
            }
            streamreader.Close();
            streamreader.Dispose();                         
            foreach (DataRow dr in datatable.Rows)
            {
                string rowvalues = string.Empty;
                foreach (string csvcolumns in columnname)
                {
                    rowvalues += csvcolumns + "=" + dr[csvcolumns].ToString() + "    ";
                 }
                Console.WriteLine(rowvalues);
              }
             Console.ReadLine();
             }              
          }
       }
  </code></pre>