2013-12-17 3 views
16

मैं datatable के इस प्रकार है:में सरणी सी # datatable पहले कॉलम को बचाने के लिए कैसे

Name | CategorieID | FullCategorie_ID 
---- ------------- ---------------- 
A  1    12 
B  1    13 
C  5    14 
D  3    15 
E  6    16 

मैं एक सरणी में स्तंभ 'NAME' के मूल्यों को बचाने के लिए चाहते हैं, मैं इस का उपयोग कर रहा प्राप्त करने के लिए एक पंक्ति के मूल्य। जैसे पहली पंक्ति के मान प्राप्त करने के लिए मैं निम्नलिखित कोड का उपयोग कर सकता हूं।

var stringArr =datatable1.Rows[0].ItemArray.Select(x => x.ToString()).ToArray(); 

लेकिन मुझे नहीं पता कि केवल पहले कॉलम के सभी मान कैसे प्राप्त करें।

उत्तर

48

मैं DataTable क्वेरी करने के लिए डेटासेट के लिए LINQ का उपयोग करने का सुझाव देते हैं:

datatable1.AsEnumerable().Select(r => r.Field<string>("Name")).ToArray(); 
+2

@Kami आपका स्वागत है! बीटीडब्ल्यू आपकी समस्या 'पंक्तियां [0]' है जो आपको तालिका की पंक्तियों की पंक्ति देता है। इसके बजाय आपको प्रत्येक पंक्ति 'पंक्तियों से डेटा का चयन करना चाहिए। कैस्ट ()। चयन करें (r => r.ItemsArray [0] .ToString()) ' –

4

मोड क्लासिक

List<String> stringArr = new List<String>(); 

// Classic version :-) 
for(int a = 0 ; a < datatable1.Rows.Count ; a ++) 
{ 
    stringArr.Add(datatable1.Rows[a]["Name"].ToString()); 
} 
+0

उत्तर के लिए धन्यवाद लेकिन मुझे LINQ से डेटासेट का उपयोग अधिक उपयुक्त लगता है। – Kamran

+0

आपका स्वागत है, मैं समझता हूं ;-) –

0
List<string> _data = new List<string>(); 

foreach (DataRow row in datatable1.Rows) 
{ 
    _data.Add((string)Convert.ToString(row["Name"])); 
} 

Array test = _data.ToArray(); 
+0

कृपया, प्रश्न से ध्यान से नमूना कोड पढ़ें। यह भी समझाता है कि पहले कॉलम को कैसे प्राप्त करें केवल –

+0

मेरा क्षमा करें कृपया संपादन देखें – SPandya

संबंधित मुद्दे