Wie hinzufügen von Daten aus einer Liste<Liste<String>>, um eine Liste anzuzeigen
bin ich mit einer List<List<String>>
MyList und enthält
{ "A1","B1","C1" }
{ "A2","B2","C2" }
{ "A3","B3","C3" }
ich muss hinzufügen, diese in ein ListView-Steuerelement mit drei Spalten
so die Ansicht der Liste wird wie
__Clm1________________Clm2________________Clm3_______________
A1 A2 A2
B1 B2 B3
C1 C2 C3
Gibt es eine Möglichkeit, dies zu tun ist die Verwendung von LINQ
BEARBEITEN Hier ist meine Lösung dazu :
ListViewItem[] lItem = MyList.Select(
X => new ListViewItem(X.ToArray())
).ToArray();
listView1.Items.AddRange(lItem);
Aber hier muss ich, um einen Index hinzuzufügen.... Die Listenansicht wird wie
___S.No __Clm1________________Clm2________________Clm3_______________
1 A1 A2 A2
2 B1 B2 B3
3 C1 C2 C3
Hinzufügen index der listview?
InformationsquelleAutor Thorin Oakenshield | 2010-11-03
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Persönlich finde ich das viel sauberer:
InformationsquelleAutor jgauffin
Ja.. ich habe eine Lösung.... Hier ist es
InformationsquelleAutor Thorin Oakenshield
Wenn Sie finden, Sie arbeiten mit
ListView
steuert, wie dies eine Menge, kann es sich lohnen, fügen Sie einige einfache Erweiterung Methoden:Ist der resultierende code wird sehr knapp und klar:
InformationsquelleAutor Merlyn Morgan-Graham
Verwenden Sie die überlastung von
Select
werden, die ein index:Ich persönlich würde verwenden verschiedene Stile, dies zu tun (lokale Delegierten, die Erweiterung Methoden + fluent-syntax), da ich nicht wirklich wie der Aufruf ToArray inline, aber das ist als in der Nähe von built-in, wie Sie gehen zu bekommen 🙂
Siehe meine andere Antwort, wenn Sie interessiert sind, in der Erweiterung Methode + fluent-syntax-option.
In der realen Szenario, die variable
blah
kommt aus der Luft (andere Funktion). Es ist nicht wirklich verfügbar, inline-wie mein Beispiel hier. In diesem Beispiel existiert, um zu zeigen, wie der codeAddRange
Linie. Auch, wenn du redest, warum brauche ichToArray()
ist dies, weil dieAddRange
Methode undListViewItem
Konstruktoren-arrays, nichtIEnumerable
.Natürlich, Sie können immer mit foreach-Schleifen 😉 Seine anderen gestellte Frage "how to do X in LINQ" (so konvertieren Sie ein
XDocument
in dieList<List<string>>
er hat am Anfang dieser Frage), so dass ich dachte, er wollte-in-line - /deklarative/"LINQ-Stil" Antworten.Was ich meinte war, dass der
listView1.Items.AddRange
ersetzt werden könnte, mit einemlistView1.Items.Add
im Durchlauf derblah
.ahh, verpasste die linq-Teil 🙂
InformationsquelleAutor Merlyn Morgan-Graham