Was ist der Unterschied zwischen Contains
und Any
in LINQ?Was ist der Unterschied zwischen Enthält und Jeder in LINQ?
Antwort
Contains
nimmt ein Objekt, ein Prädikat Any
nimmt.
Sie verwenden Contains
wie folgt aus:
listOFInts.Contains(1);
und Any
wie folgt aus:
listOfInts.Any(i => i == 1);
listOfInts.Any(i => i % 2 == 0); // Check if any element is an Even Number
Also, wenn Sie für einen bestimmten Zustand überprüfen möchten, Any
verwenden. Wenn Sie für die Existenz eines Elements überprüfen möchten, verwenden Contains
.
Contains
überprüft, ob die Sequenz enthält ein angegebenes Element.
Enumerable.Any
prüft, ob Element einer Sequenz eine Bedingung erfüllt.
betrachte das folgende Beispiel:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
bool contains = list.Contains(1); //true
bool condition = list.Any(r => r > 2 && r < 5);
Bestimmt, ob eine Sequenz ein angegebenes Element enthält, durch den Standard-Gleichheitsvergleichs.
Bestimmt, ob eine Sequenz Elemente enthält.
Wie für die Dokumentation:
kann nicht scheinen zu finden, alle Unterlagen über sie zu finden.
Alle (? Die meisten) Methoden LINQ-Erweiterung: here
Das ist eine Überladung von Any (und die, die weniger häufig verwendet wird). Ich würde zumindest die häufiger verwendete Überladung in Ihre Antwort aufnehmen. – BradleyDotNET
Meine Antwort enthält bereits ** alle ** Überladungen;) (und alle (die meisten?) Anderen LINQ-Erweiterungsmethoden) – RobIII
Enthält über Sorgen, ob die Quellensammlung eine ICollection ist, jede nicht.
Enumerable.Any http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs#6a1af7c3d17845e3
public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
foreach (TSource local in source)
{
if (predicate(local))
{
return true;
}
}
return false;
}
Enumerable.Contains http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs#f60bab4c5e27a849
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value)
{
ICollection<TSource> collection = source as ICollection<TSource>;
if (collection != null)
{
return collection.Contains(value);
}
return source.Contains<TSource>(value, null);
}
Das ist nicht der * einzige * Unterschied, aber es ist einer, den ich nicht kannte! – BradleyDotNET
Schade, dass das OP nicht fragte, was Any() Unterschied zwischen den beiden Methoden ist ... – JJS
- 1. Was ist der Unterschied zwischen "Alle" und "Jeder" in Großbuchstaben?
- 2. Linq: Was ist der Unterschied zwischen Auswählen und Wo?
- 3. Was ist der Unterschied zwischen LINQ-Abfrageausdrücken und Erweiterungsmethoden?
- 4. Was ist der Unterschied zwischen `==` und `ist`?
- 5. Was ist der Unterschied zwischen/* ... */und/** ... */
- 6. Was ist der Unterschied zwischen + = und = +?
- 7. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 8. Was ist der Unterschied zwischen:.! und: r !?
- 9. Was ist der Unterschied zwischen Verilog! und ~?
- 10. Was ist der Unterschied zwischen diesen LINQ-Abfragen
- 11. Was ist der Unterschied zwischen Difftime und '-'?
- 12. Was ist der Unterschied zwischen $ und $$?
- 13. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 14. Was ist der Unterschied zwischen `&` und `ref`?
- 15. Was ist der Unterschied zwischen $ (...) und `...`
- 16. Was ist der Unterschied zwischen .Equals und ==
- 17. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 18. Was ist der Unterschied zwischen? und ? = Nil
- 19. Was ist der Unterschied zwischen:
- 20. Was ist der Unterschied zwischen IDREF und IDREFS in XSD?
- 21. Was ist der Unterschied zwischen codieren und konvertieren in Notepad ++?
- 22. Was ist der Unterschied zwischen flach und ravel in numpy?
- 23. Unterschied zwischen Linq zu Entitäten und Linq
- 24. Was ist der Unterschied zwischen 'Abhängigkeiten' und 'FrameworkAssemblies' in project.json?
- 25. Was ist der Unterschied zwischen latin1_general_ci und utf8_bin in MYSQL
- 26. Was ist der Unterschied zwischen Session und db.session in SQLAlchemy?
- 27. Was ist der Unterschied zwischen Datenrahmen und Liste in R?
- 28. Was ist der Unterschied zwischen Converting und Unboxing?
- 29. Was ist der Unterschied zwischen JasperReport-Formaten?
- 30. Was ist der Unterschied zwischen @include und @match in userscripts?
nicht sicher, warum ich downvoted bekommen würde, vollkommen berechtigte Frage – user2202911
Jetzt sind Sie upvoted! – Aybe
Ich denke, es hier beantwortet ist schon: http: // Stackoverflow.com/questions/4445219/linq-ring-any-vs-enthält-für-riesen-sammlungen – msmolcic