List.Exists メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As List(Of T) Dim match As Predicate(Of T) Dim returnValue As Boolean returnValue = instance.Exists(match)
戻り値
指定された述語によって定義された条件と一致する要素が少なくとも 1 つ、List に存在する場合は、true。それ以外の場合は false。


Predicate は、渡されたオブジェクトがデリゲートで定義された条件と一致した場合にtrue を返すメソッドのデリゲートです。現在の List の要素は、それぞれ Predicate デリゲートに渡されます。この処理は、一致する要素が見つかった時点で終了します。

Predicate 汎用デリゲートを使用する Exists メソッドと他のいくつかのメソッドを使用したコード例を次に示します。
8 つの恐竜の名前で、その内の 2 つ (1 番目と 5 番目の位置) は "saurus" で終わる名前が格納された、文字列の List が作成されます。このコード例では、EndsWithSaurus という名前の検索述語のメソッドも定義されます。このメソッドは文字列パラメータを受け取り、入力文字列が "saurus" で終わっているかどうかを示すブール値を返します。
Find、FindLast、および FindAll の各メソッドを使用し、検索述語のメソッドを使用してリストを検索します。次に RemoveAll メソッドを使用して "saurus" で終わるすべてのエントリを削除します。
最後に、Exists メソッドが呼び出されます。このメソッドはリストを先頭から走査し、次に各要素を EndsWithSaurus メソッドに渡します。EndsWithSaurus メソッドがいずれの要素についても true を返すと、検索が停止し、このメソッドは true を返します。そのような要素はすべて削除されているため、Exists メソッドは false を返します。
![]() |
---|
C# と Visual Basic では、Predicate<string> デリゲート (Visual Basic では Predicate(Of String)) を明示的に作成する必要はありません。これらの言語はコンテキストから正しいデリゲートを推測し、自動的に作成します。 |
Imports System 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 ' AndAlso prevents evaluation of the second Boolean ' expression if the string is so short that an error ' would occur. If (s.Length > 5) AndAlso _ (s.Substring(s.Length - 6).ToLower() = "saurus") Then Return True Else Return False End If 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
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) { if ((s.Length > 5) && (s.Substring(s.Length - 6).ToLower() == "saurus")) { return true; } else { return false; } } } /* 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 namespace System; using namespace System::Collections::Generic; // Search predicate returns true if a string ends in "saurus". bool EndsWithSaurus(String^ s) { if ((s->Length > 5) && (s->Substring(s->Length - 6)->ToLower() == "saurus")) { return true; } else { return false; } }; 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 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- List.Exists メソッドのページへのリンク