List<T>.TrueForAll(Predicate<T>) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy każdy element w obiekcie List<T> jest zgodny z warunkami zdefiniowanymi przez określony predykat.
public:
bool TrueForAll(Predicate<T> ^ match);
public bool TrueForAll (Predicate<T> match);
member this.TrueForAll : Predicate<'T> -> bool
Public Function TrueForAll (match As Predicate(Of T)) As Boolean
Parametry
- match
- Predicate<T>
Delegat Predicate<T> , który definiuje warunki do sprawdzania względem elementów.
Zwraca
true
jeśli każdy element w obiekcie List<T> pasuje do warunków zdefiniowanych przez określony predykat; w przeciwnym razie false
. Jeśli lista nie zawiera żadnych elementów, zwracana wartość to true
.
Wyjątki
match
to null
.
Przykłady
W poniższym przykładzie pokazano metodę TrueForAll i kilka innych metod, które używają Predicate<T> delegata ogólnego.
Tworzony List<T> jest ciąg zawierający 8 nazw dinozaurów, z których dwa (na pozycjach 1 i 5) kończą się "saurus". W przykładzie zdefiniowano również metodę predykatu wyszukiwania o nazwie EndsWithSaurus
, która akceptuje parametr ciągu i zwraca wartość logiczną wskazującą, czy ciąg wejściowy kończy się ciągiem "saurus".
Metoda TrueForAll przechodzi przez listę od początku, przekazując każdy element z kolei do EndsWithSaurus
metody . Wyszukiwanie zatrzymuje się, gdy EndsWithSaurus
metoda zwraca wartość false
.
Uwaga
W językach C# i Visual Basic nie jest konieczne jawne utworzenie delegata Predicate<string>
(Predicate(Of String)
w Visual Basic). Te języki wnioskują o poprawnym delegacie z kontekstu, a następnie są tworzone automatycznie.
using namespace System;
using namespace System::Collections::Generic;
// Search predicate returns true if a string ends in "saurus".
bool EndsWithSaurus(String^ s)
{
return s->ToLower()->EndsWith("saurus");
};
void main()
{
List<String^>^ dinosaurs = gcnew List<String^>();
dinosaurs->Add("Compsognathus");
dinosaurs->Add("Amargasaurus");
dinosaurs->Add("Oviraptor");
dinosaurs->Add("Velociraptor");
dinosaurs->Add("Deinonychus");
dinosaurs->Add("Dilophosaurus");
dinosaurs->Add("Gallimimus");
dinosaurs->Add("Triceratops");
Console::WriteLine();
for each(String^ dinosaur in dinosaurs )
{
Console::WriteLine(dinosaur);
}
Console::WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
dinosaurs->TrueForAll(gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nFind(EndsWithSaurus): {0}",
dinosaurs->Find(gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nFindLast(EndsWithSaurus): {0}",
dinosaurs->FindLast(gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nFindAll(EndsWithSaurus):");
List<String^>^ sublist =
dinosaurs->FindAll(gcnew Predicate<String^>(EndsWithSaurus));
for each(String^ dinosaur in sublist)
{
Console::WriteLine(dinosaur);
}
Console::WriteLine(
"\n{0} elements removed by RemoveAll(EndsWithSaurus).",
dinosaurs->RemoveAll(gcnew Predicate<String^>(EndsWithSaurus)));
Console::WriteLine("\nList now contains:");
for each(String^ dinosaur in dinosaurs)
{
Console::WriteLine(dinosaur);
}
Console::WriteLine("\nExists(EndsWithSaurus): {0}",
dinosaurs->Exists(gcnew Predicate<String^>(EndsWithSaurus)));
}
/* This code example produces the following output:
Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops
TrueForAll(EndsWithSaurus): False
Find(EndsWithSaurus): Amargasaurus
FindLast(EndsWithSaurus): Dilophosaurus
FindAll(EndsWithSaurus):
Amargasaurus
Dilophosaurus
2 elements removed by RemoveAll(EndsWithSaurus).
List now contains:
Compsognathus
Oviraptor
Velociraptor
Deinonychus
Gallimimus
Triceratops
Exists(EndsWithSaurus): False
*/
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Compsognathus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Oviraptor");
dinosaurs.Add("Velociraptor");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Dilophosaurus");
dinosaurs.Add("Gallimimus");
dinosaurs.Add("Triceratops");
Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
dinosaurs.TrueForAll(EndsWithSaurus));
Console.WriteLine("\nFind(EndsWithSaurus): {0}",
dinosaurs.Find(EndsWithSaurus));
Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
dinosaurs.FindLast(EndsWithSaurus));
Console.WriteLine("\nFindAll(EndsWithSaurus):");
List<string> sublist = dinosaurs.FindAll(EndsWithSaurus);
foreach(string dinosaur in sublist)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine(
"\n{0} elements removed by RemoveAll(EndsWithSaurus).",
dinosaurs.RemoveAll(EndsWithSaurus));
Console.WriteLine("\nList now contains:");
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
}
Console.WriteLine("\nExists(EndsWithSaurus): {0}",
dinosaurs.Exists(EndsWithSaurus));
}
// Search predicate returns true if a string ends in "saurus".
private static bool EndsWithSaurus(String s)
{
return s.ToLower().EndsWith("saurus");
}
}
/* This code example produces the following output:
Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops
TrueForAll(EndsWithSaurus): False
Find(EndsWithSaurus): Amargasaurus
FindLast(EndsWithSaurus): Dilophosaurus
FindAll(EndsWithSaurus):
Amargasaurus
Dilophosaurus
2 elements removed by RemoveAll(EndsWithSaurus).
List now contains:
Compsognathus
Oviraptor
Velociraptor
Deinonychus
Gallimimus
Triceratops
Exists(EndsWithSaurus): False
*/
Imports System.Collections.Generic
Public Class Example
Public Shared Sub Main()
Dim dinosaurs As New List(Of String)
dinosaurs.Add("Compsognathus")
dinosaurs.Add("Amargasaurus")
dinosaurs.Add("Oviraptor")
dinosaurs.Add("Velociraptor")
dinosaurs.Add("Deinonychus")
dinosaurs.Add("Dilophosaurus")
dinosaurs.Add("Gallimimus")
dinosaurs.Add("Triceratops")
Console.WriteLine()
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & _
"TrueForAll(AddressOf EndsWithSaurus: {0}", _
dinosaurs.TrueForAll(AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & _
"Find(AddressOf EndsWithSaurus): {0}", _
dinosaurs.Find(AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & _
"FindLast(AddressOf EndsWithSaurus): {0}", _
dinosaurs.FindLast(AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & _
"FindAll(AddressOf EndsWithSaurus):")
Dim sublist As List(Of String) = _
dinosaurs.FindAll(AddressOf EndsWithSaurus)
For Each dinosaur As String In sublist
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & _
"{0} elements removed by RemoveAll(AddressOf EndsWithSaurus).", _
dinosaurs.RemoveAll(AddressOf EndsWithSaurus))
Console.WriteLine(vbLf & "List now contains:")
For Each dinosaur As String In dinosaurs
Console.WriteLine(dinosaur)
Next
Console.WriteLine(vbLf & _
"Exists(AddressOf EndsWithSaurus): {0}", _
dinosaurs.Exists(AddressOf EndsWithSaurus))
End Sub
' Search predicate returns true if a string ends in "saurus".
Private Shared Function EndsWithSaurus(ByVal s As String) _
As Boolean
Return s.ToLower().EndsWith("saurus")
End Function
End Class
' This code example produces the following output:
'
'Compsognathus
'Amargasaurus
'Oviraptor
'Velociraptor
'Deinonychus
'Dilophosaurus
'Gallimimus
'Triceratops
'
'TrueForAll(AddressOf EndsWithSaurus: False
'
'Find(AddressOf EndsWithSaurus): Amargasaurus
'
'FindLast(AddressOf EndsWithSaurus): Dilophosaurus
'
'FindAll(AddressOf EndsWithSaurus):
'Amargasaurus
'Dilophosaurus
'
'2 elements removed by RemoveAll(AddressOf EndsWithSaurus).
'
'List now contains:
'Compsognathus
'Oviraptor
'Velociraptor
'Deinonychus
'Gallimimus
'Triceratops
'
'Exists(AddressOf EndsWithSaurus): False
Uwagi
Element Predicate<T> jest delegatem do metody, która zwraca true
, jeśli obiekt przekazany do niego jest zgodny z warunkami zdefiniowanymi w delegatu. Elementy bieżące List<T> są indywidualnie przekazywane do delegata Predicate<T> , a przetwarzanie jest zatrzymywane, gdy delegat zwraca false
dowolny element. Elementy są przetwarzane w kolejności, a wszystkie wywołania są wykonywane w jednym wątku.
Ta metoda jest operacją O(n), gdzie n to Count.