2013-12-17 8 views
16

Ich habe diese Art von Datentabelle speichern:Wie Datentabelle ersten Spalt in der Matrix C#

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

Ich mag die Werte der Spalte ‚NAMEN‘ in einem Array speichern, ich dies mit dem bekommen Werte einer Zeile. Z.B. Um die Werte der ersten Zeile zu erhalten, kann ich folgenden Code verwenden.

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

Aber ich weiß nicht, wie man alle Werte nur der ersten Spalte bekommt.

Antwort

48

Ich schlage vor, für die Abfrage von Datatable LINQ to DataSet verwenden:

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

@Kami willkommen! Übrigens ist dein Problem "Zeilen [0]", was dir die erste Zeile der Tabelle gibt. Stattdessen sollten Sie Daten aus jeder Zeile auswählen "Rows.Cast (). Wählen Sie (r => r.ItemsArray [0] .ToString())' –

4

Modus classic

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

Danke für die Antwort, aber ich fand LINQ zu DataSet besser geeignet. – Kamran

+0

Gern geschehen, ich verstehe ;-) –

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

Bitte lesen Sie sorgfältig Beispielcode aus Frage. Auch das erklärt nicht, wie man nur die erste Spalte bekommt. –

+0

Meine Entschuldigung bitte siehe Bearbeiten – SPandya