So wählen Sie mehrere Spalten aus dem dataset in eine string-Liste mit LinQ
Okay, nun weiter unten ist, arbeiten
List<string> lstKnownMoves = dsAttacksTemp.Tables[0].Rows.
Cast<DataRow>().Select(r => r["Column1"].ToString()).ToList();
Aber ich will es funktioniert wie folgt und nicht arbeiten
List<string> lstKnownMoves = dsAttacksTemp.Tables[0].Rows.
Cast<DataRow>().Select(r => r["Column1"].ToString(),r => r["Column2"].ToString(),r => r["Column3"].ToString()).ToList();
Also statt 1 dataset datarow-Spalte, möchte ich hinzufügen, dass mehrere Spalten in der Liste.
Wie kann ich das tun ?
- Sie bekommen würde, eine Liste von string-arrays. Ist es das, was Sie wollen? Vermutlich möchten Sie eine Liste, ein Objekt mit mehreren string-Eigenschaften, nicht?
- "funktioniert nicht" ist nicht klar. Was erwarten Sie? Was bekommen Sie stattdessen?
- Können Sie ein Beispiel geben mit den Daten?
- check @SWeko Antwort. SelectMany ist die Lösung meines Problems. vielen Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie SelectMany wenn Sie nur dump die Inhalte der Felder in eine Liste.
Wenn Sie jedoch möchten, extrahieren Sie die Felder in ein anderes Objekt, Sie könnten etwas tun wie:
Ich nehme an, Sie möchten eine Liste ein Objekt mit mehreren string-Eigenschaften statt einer Liste von string-arrays.
Dieser Art, Sie bekommen würde, eine
List<T>
woT
ist ein anonymes Objekt mit 3 string-properties, nämlichCol1
,Col2
undCol3
. Ich denke, das ist das, was Sie fordern.List<string>
es ist einList<object>
. Bitte siehe meine aktualisierte Antwort.Gut, vorausgesetzt, Sie wollen in der Lage sein, um auf jede Spalte individuell, würden Sie wollen, um ein array von Zeichenfolgen zurückzugeben.
Dann für jede Zeile, können Sie den string-Wert der Spalte index:
Wenn Sie wollen im Grunde eine Karte von Spalten, und möchte lieber nicht erstellen Sie eine Klasse als ein Tupel wie in der ausgewählten Antwort, die Sie verwenden können
List<dynamic>
:List<string>
ist, aber wenn Sie nur noch string concat alle drei Spalten (das scheint mir völlig nutzlos), können Sie nicht in jeder Spalte für jede Zeile, es sei denn, Sie ändern die Liste element ausstring
zustring[]
(oder ähnlich).