2010-09-20 7 views
11

Ich habe einige Werte in einem DataGridRow (Element Array) und ich möchte alle diese Werte in einem String-Array abrufen. Wie kann ich das erreichen?Wie kann ich DataRow in String Array konvertieren?

DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k); 
      DataRowView Drv = (DataRowView)row.Item; 
      DataRow dr = (DataRow)Drv.Row; 
+0

Was ist der Inhalt von Ihnen Datenzeilen? Die Antwort hängt davon ab. –

Antwort

12

Eine Möglichkeit ist dr.ItemArray; zu nennen Dies wird Ihnen ein object[] bekommen. Dann müssen Sie jedes Objekt auf string werfen, bevor Sie es verwenden.

6
var rowAsString = string.Join(", ", dr.ItemArray.Select(c => c.ToString()).ToArray()); 

Dies sollte Ihnen eine Zeichenfolge mit jedem Element in Ihrer Datenzeile durch ein Komma getrennt geben.

+2

Nur akzeptable Antwort. Bei anderen Antworten wird ein Fehler ausgegeben, wenn und item kein String-Typ ist. – nelek

+0

Wie funktioniert das ?! DataRow (dr) hat kein Select (und definitiv kein Selct ;-)) –

+0

:-) Hoppla! Es gab zwei Tippfehler in der Antwort. Zuerst hatte ich vergessen auf das ItemArray zuzugreifen und zweitens sollte der Methodenname natürlich Select sein ;-) –

23
var rowAsString = string.Join(", ", dataTable.Rows[0].ItemArray); 

Kein Lambda-Ausdruck wie oben erforderlich.

6

LINQ fügt etwas Zucker:

var stringArray = dr.ItemArray.Cast<string>().ToArray() 
Verwandte Themen