C# DataTable mit Linq select distinct-Werte, wo die Spalte gleich 'x'
Ich habe eine Datatable (Gruppen) entwickelt, wie so
- ColumnA|ColumnB
- X|Apple
- Y|Lila
- X|Apple
- X|MangoIch im Grunde wollen, wählen Sie aus columna, wo es X und erhalten die disinct von ColumnB
Dies ist, was ich haben
var names = (from DataRow dr in Groups.Rows orderby (string)dr["ColumnB"] select (string)dr["ColumnB"]).Distinct();
Diese geben mir verschiedene, aber es gibt mir Lila, und ich will nicht lila.
Dank!
sollten Sie einen
where
blockInformationsquelleAutor | 2013-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sorry, mein Fehler.
=
sollte ersetzt werden, mit==
. Ich habe meine Antwort aktualisiertwo (string)dr["Spalte"] == "X", dass es behoben
Funktioniert es jetzt? oder Sie können Folgen Sie @Mike ' s Ratschläge zu.
InformationsquelleAutor sarwar026
Hier sind wir also wählen Sie nur die Zeilen von Daten, die Sie möchten, werden nur die Zeilen, wo die columnA ist X. Dann wählen wir nur, um zu sehen, columnB, aber mit eindeutigen Werten nur. Tun es in dieser Reihenfolge, du wirst erhalten eine andere datatable mit zu spielen. Es werden nur die 1 Spalte, columnB, und es werden nur unique/distinct Werte.
Genießen.
InformationsquelleAutor Jason Politis
Wenn Ihr Rückflug hat mehr als einen Wert und Sie wollen Verschiedene die ganze Reihe durch nur einen der Werte, die Sie sollten die Verwendung eines benutzerdefinierten IEqualityComparer.
edit: zu zählen where-Klausel
edit2: geändert, um benutzerdefinierte IEqualityComparer
Das ist wahr. Ich habe nicht überprüfen den code vor dem posten. Was er tun kann, ist in der Tat verwenden Sie eine benutzerdefinierte IEqualityComparer, wenn er nur will, sich durch eine der vielen zurückgegebenen Werte. Ich aktualisierte die Antwort. Danke für den Hinweis @rekursive
InformationsquelleAutor tucaz