Ich habe eine Liste von Elementen mit 20 Elementen und ein Array mit 5 Elementen, ich muss jedes Element für allgemeine Eigenschaften vergleichen und wenn es übereinstimmt..Ich muss sie in eine Liste für o/p filtern. Wie vergleiche ich sie effektiv, ohne 20 * 5 = 100 Vergleiche zu machen? Kann mit hashmap sein? Bitte helfen ... DankeWie vergleiche ich jedes Element in einem Array mit jedem Element in Liste?
1
A
Antwort
2
Mit LINQ-to-Objects Erweiterung Methode Enumerable.Join ist wahrscheinlich die knappste Art und Weise, dies auszudrücken:
List<MyListType> matches = myList
.Join(myArray,
myListItem => myListItem.someProperty, //if this prop
myArrayItem => myArrayItem.someProperty, //and this prop match
(myListItem, myArrayItem) => myListItem) //project to...
.ToList();
Intern diese verwendet eine Hash-Tabelle wie Struktur von links erstellt Handseite des Joins (myList
oben), dann iteriert die rechte Seite des Joins (myArray
oben) auf der Suche nach Übereinstimmungen in dem Satz von der linken Seite erstellt.
Diese deutlich Verarbeitung beschleunigt im Vergleich zum (naiven) cartesianischen Produkt, das Sie oben beschreiben ("20 * 5 = 100 Vergleiche")
effektiv, tut es so etwas wie diese:
var lookup = lhs.ToLookup(leftItem => leftItem.someProp);
var matches = rhs.SelectMany(rightItem =>
lookup[rightItem.someProp]
.Select(leftItem => MethodToBeCalledWithTwoMatchingItems(leftItem, rightItem)));
0
etwas effizienter nur die kleinere Liste Hash, oder derjenige, der weniger ändert:
var hashSet = new HashSet<int> { 1, 2, 3, 4, 5 };
var result = list1.Where(item => hashSet.Contains(item.Property));
Verwandte Themen
- 1. Vergleichen jedes Elements mit jedem anderen Element in einer Liste
- 2. Wie passt "n" Liste in SCALA jedes Element mit jedem Element?
- 3. Xquery, vergleiche ein Element in einem Array mit dem nächsten
- 4. jedes Element in einer Liste mit jQuery
- 5. Wie liest man jedes Element in einem Array mit jQuery
- 6. Javascript: wie auf jedes Element in einem Array zugreifen
- 7. Drucken und summieren jedes Element in einem Array in Python
- 8. Python - Vergleichen jedes Elements einer Liste mit jedem anderen Element in dieser Liste
- 9. multiplizieren jedes Element in numpy.array a mit jedem Element in numpy.array b
- 10. Element einfügen in Python-Liste nach jedem n-ten Element
- 11. PostgreSQL - Constraint auf jedem Element benutzerdefinierten Typ in einem Array
- 12. Wie gebe ich jedes Perl-Array-Element in Anführungszeichen um?
- 13. Animiere jedes Array Element Javascript
- 14. Wie umgehen Sie SecurityTrustResourceUrl für jedes Element in einem Array?
- 15. Wie kann ich Hamcrest verwenden, um zu überprüfen, ob jedes Element in einem Array von Doppelpunkten jedem Element in einem anderen Array "nahe" ist?
- 16. Array Rückruf für jedes Element außer einem
- 17. Konvertieren Sie jedes Element in Array separat
- 18. Liste Letzte Aufzeichnung jedes Element in mysql
- 19. NHibernate Wie schreibe ich eine Abfrage mit wie jedes Element in einer Liste oder Array
- 20. Zählen jedes Element in der Liste Zeichenfolge
- 21. ein Element vor jedem Element einer Liste einfügen
- 22. Wie teile ich Texte von jedem Element von String Array
- 23. Mehrwert für jedes Element in Array Python
- 24. Fügen Sie jedes Element einer RDD zu jedem Element einer anderen RDD in Spark Scala hinzu.
- 25. , dass jedes Element enthalten in int Array
- 26. Wählen Sie jedes nth Element aus einem Array in Julia
- 27. Wie konvertiere ich jedes Element in einem Array in ein eigenes Array?
- 28. Rast-Assured Validieren jedes Element in einem JSON-Array
- 29. Verknüpfen jedes andere Array-Element
- 30. Schleife durch jedes Element in einem numply-Array?
Dank einer Tonne man..It funktioniert :) –