Überschneide zwei Listen in C #
Ich habe zwei Listen:
List<int> data1 = new List<int> {1,2,3,4,5};
List<string> data2 = new List<string>{"6","3"};
Will ich tun, um so etwas wie
var newData = data1.intersect(data2, lambda expression);
Den lambda-Ausdruck soll true zurückgeben, wenn data1[index].ToString() == data2[index]
InformationsquelleAutor der Frage Merni | 2011-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zuerst transformieren data1, in Ihrem Fall durch den Aufruf
ToString()
auf jedes element.Verwenden Sie dies, wenn Sie möchten, um die Rückgabe von strings.
Verwenden Sie diese, wenn Sie zurückkehren möchten zahlen.
Beachten Sie, dass dies eine Ausnahme werfen, wenn nicht alle strings sind zahlen. So könnten Sie Folgendes tun zuerst zu prüfen:
InformationsquelleAutor der Antwort George Duckett
Vom performance pointwenn zwei Listen enthalten Anzahl der Elemente, die sich deutlich unterscheidenkönnen Sie versuchen, eine solche Vorgehensweise (bedingte operator ?:):
1.Zuerst müssen Sie deklarieren Sie einen Konverter:
2.Dann verwenden Sie eine bedingte operator:
Wandeln Sie Elemente der kürzeren Liste entsprechend der Art der längeren Liste. Stellen Sie sich eine Ausführungsgeschwindigkeitwenn Sie Ihre erste Satz enthält 1000 Elemente und die zweite nur 10 (oder Umgekehrt, da ist es egal) 😉
Wie Sie möchten, um ein Ergebnis als Liste, in einer letzten Zeile, die Sie konvertieren das Ergebnis (nur Ergebnis) zurück zu int.
InformationsquelleAutor der Antwort Slava Kovalchuk
InformationsquelleAutor der Antwort islam hassan