Ich habe eine List<bool>
mit vielen Werten. Was ist der effizienteste Weg zu überprüfen, ob jedes einzelne Element in der Liste gleich false
ist?Bool Liste überprüfen, ob jedes Element in der Liste falsch ist
Antwort
Sie können Enumerable.Any
verwenden, es wird die Bedingung beim ersten Treffer erfüllen. Wie Habib richtigerweise besser gesagt hat, Any als Enumerable zu verwenden.Alle würden für eine Empty-Liste von Bool true zurückkehren.
!lst.Any(c=> c == true);
OR verwenden Enumerable.All
lst.All(c=> c == false);
+1, Besser zu 'Any' zu verwenden, da' Enumerable.All' würde 'true' für eine leere Liste von bool zurückgeben. – Habib
+1 Dies ist besser als All(), weil es immer die ganze Liste iteriert; es stoppt, wenn es einen findet –
@AdrianCarneiro Uhm ..? Das ergibt keinen Sinn für mich. Beide sind faul und müssen in diesem Fall die gleiche Anzahl von Elementen betrachten. – user2864740
können Sie LINQ's
All
Methode verwenden:
Dies wird false
sofort zurück, wenn sie einen Wert findet, der zu true
entspricht.
ich mit der Verwendung von IEnumerable.Any/All zustimmen. Allerdings stimme ich nicht mit der derzeit am meisten gewählten Antwort (die zum Zeitpunkt der Erstellung dieses Textes falsch war) und einigen der damit verbundenen Kommentare von Any vs All überein.
Diese folgenden Operationen sind äquivalent semantisch. Beachten Sie, dass die Negationen sowohl innerhalb, auf das Prädikat und auf das Ergebnis der Operation angewendet werden.
!l.Any(x => f(x))
l.All(x => !f(x))
Nun, in diesem Fall wir also suchen:
Wenn es nicht der Fall ist, dass es irgendein wahrer Wert.
!l.Any(x => x) // f(x) = x == true
Oder,
Es ist der Fall, dass jeder Wert nicht wahr.
l.All(x => !x) // f'(x) = !f(x) = !(x == true)
Es gibt nichts für leere Listen Sonder ist das Ergebnis ist das gleiche: z.B. !empty.Any(..)
ist falsch, ebenso wie empty.All(..)
und die obige Äquivalenzbeziehung bleibt gültig.
Zusätzlich beide Formulare sind faul ausgewertet und erfordern die gleiche Anzahl von Auswertungen in ; intern negiert die Differenz für eine Sequenzimplementierung lediglich die Überprüfung des Prädikats und des Ergebniswertes.
- 1. Überprüfen, ob Element in der Liste ist (enthält)
- 2. SharePoint: Überprüfen, ob Element in einer Liste vorhanden ist, Mindestaufwand
- 3. Überprüfen Sie, ob Objekt Liste der Liste in Python ist?
- 4. Scala überprüfen, ob Element in einer Liste vorhanden ist
- 5. Überprüfen, ob die Liste der Strukte ein Element enthält
- 6. Prolog-Liste. Überprüfen Sie, ob erste und das letzte Element in der Liste ist ähnlich
- 7. sqlalchemy überprüfen, ob Beziehung Eigenschaft in der Liste ist
- 8. Python überprüfen, ob Objekt in der Liste der Objekte ist
- 9. Wie überprüfen, ob der Wert in der Liste ist
- 10. Überprüfen Sie, ob String.Contain Element aus der Liste
- 11. Führen Sie die Operation für jedes Element in einer Liste für jedes andere Element in der Liste mit Ausschlüssen
- 12. Überprüfen, ob eine Liste mit LINQ leer ist
- 13. Überprüfen Sie, ob eine String-Liste ein Element enthält
- 14. Liste Letzte Aufzeichnung jedes Element in mysql
- 15. Überprüfen Sie, ob die Liste ist flach in Haskell
- 16. jQuery überprüfen, ob Element jedes Attribut
- 17. Überprüfen, ob Bool Wert geändert
- 18. Anwendung putstr auf jedes Element einer Liste
- 19. Überprüfen ob das Objekt Teil der Liste ist
- 20. Prolog überprüft rekursiv, ob ein Element in einer Liste ist
- 21. Wie kann man überprüfen, ob Element existiert bereits auf Liste
- 22. Wiederholung in Python für jedes Element der Liste
- 23. Prolog-Liste, überprüfen Sie die Einträge in der Liste
- 24. Überprüfen, ob eine Liste in Java leer ist 8
- 25. Überprüfen Sie, ob die Dateierweiterungen der genehmigten Liste entsprechen.
- 26. Reagieren Js Rendern Liste Element Element in der Liste
- 27. Überprüfen, ob eine Bedingung falsch ist
- 28. Überprüfen, ob die Zeichenfolge alle Eingaben in der Liste enthält
- 29. R verschiedene Funktionen für jedes Element der Liste
- 30. Mit lapply mit, wenn jedes Element in einer Liste
list.Any (x => x) –