2011-07-07 16 views
50

में कैसे परिवर्तित करें मेरे पास एकाधिक कॉलम के साथ डेटाटेबल है। मैं डेटाटेबल के पहले कॉलम से List<String> प्राप्त करना चाहता हूं। मैं उसे कैसे कर सकता हूँ?डेटाटेबल के कॉलम को एक सूची

उत्तर

35
var list = dataTable.Rows.OfType<DataRow>() 
    .Select(dr => dr.Field<string>(columnName)).ToList(); 

[संपादित: अपनी परियोजना के लिए System.Data.DataSetExtensions के लिए एक संदर्भ जोड़ें अगर यह संकलन नहीं है]

+5

AsEnumerable() के साथ-साथ एक DataTable पर काम करता है। var list = dataTable.AsEnumerable()। चयन करें (आर => आर। फ़ील्ड (कॉलमनाम))। ToList(); –

+0

यदि 'DataTable.AsEnumerable()' संकलित नहीं होता है, तो अपनी प्रोजेक्ट में System.Data.DataSetExtensions का संदर्भ जोड़ें। – Brk

+0

यदि आपको 'कॉलमनाम' नहीं पता है तो क्या होगा? – chiapa

6

ये रहा।

  DataTable defaultDataTable = defaultDataSet.Tables[0]; 
      var list = (from x in defaultDataTable.AsEnumerable() 
        where x.Field<string>("column1") == something 
        select x.Field<string>("column2")).ToList(); 

आप पहले कॉलम

  var list = (from x in defaultDataTable.AsEnumerable() 
        where x.Field<string>(1) == something 
        select x.Field<string>(1)).ToList(); 
5

की जरूरत है कि आप यही की आवश्यकता है?

DataTable myDataTable = new DataTable(); 
List<int> myList = new List<int>(); 
foreach (DataRow row in myDataTable.Rows) 
{ 
    myList.Add((int)row[0]); 
} 
+0

आपका उत्तर लगभग सही है, प्रश्न पूछने के लिए पूछ रहा है या 'सूची ' – AaA

70

इस प्रयास करें:

static void Main(string[] args) 
{ 
    var dt = new DataTable 
    { 
     Columns = { { "Lastname",typeof(string) }, { "Firstname",typeof(string) } } 
    }; 
    dt.Rows.Add("Lennon", "John"); 
    dt.Rows.Add("McCartney", "Paul"); 
    dt.Rows.Add("Harrison", "George"); 
    dt.Rows.Add("Starr", "Ringo"); 

    List<string> s = dt.AsEnumerable().Select(x => x[0].ToString()).ToList(); 

    foreach(string e in s) 
     Console.WriteLine(e); 

    Console.ReadLine(); 
} 
+0

क्या किसी और को कॉलम पर केवल पढ़ने में त्रुटि मिल रही है? – InteXX

+0

कॉलम "नाम" से डेटा कैसे पुनर्प्राप्त करें? – JerryGoyal

3

मैं तुम्हारे लिए एक नमूना है, और मुझे आशा है कि यह उपयोगी है ...

static void Main(string[] args) 
    { 
     var cols = new string[] { "col1", "col2", "col3", "col4", "col5" }; 

     DataTable table = new DataTable(); 
     foreach (var col in cols) 
      table.Columns.Add(col); 

     table.Rows.Add(new object[] { "1", "2", "3", "4", "5" }); 
     table.Rows.Add(new object[] { "1", "2", "3", "4", "5" }); 
     table.Rows.Add(new object[] { "1", "2", "3", "4", "5" }); 
     table.Rows.Add(new object[] { "1", "2", "3", "4", "5" }); 
     table.Rows.Add(new object[] { "1", "2", "3", "4", "5" }); 

     foreach (var col in cols) 
     { 
      var results = from p in table.AsEnumerable() 
          select p[col]; 

      Console.WriteLine("*************************"); 
      foreach (var result in results) 
      { 
       Console.WriteLine(result); 
      } 
     } 


     Console.ReadLine(); 
    } 
संबंधित मुद्दे