Array.FindAll ジェネリック メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim array As T() Dim match As Predicate(Of T) Dim returnValue As T() returnValue = Array.FindAll(array, match)
パラメータ
戻り値
見つかった場合は、指定された述語によって定義された条件と一致するすべての要素を格納した Array。それ以外の場合は、空の Array。


Predicate は、渡されたオブジェクトがデリゲートで定義された条件と一致した場合にtrue を返すメソッドのデリゲートです。array 内の要素は、それぞれ Predicate に渡され、条件と一致した要素が戻り値の配列に格納されます。

Find、FindLast、および FindAll の各ジェネリック メソッドを次のコード例に示します。8 つの恐竜の名前で、その内の 2 つ (1 番目と 5 番目の位置) は "saurus" で終わる名前が格納された、文字列の配列が作成されます。このコード例では、EndsWithSaurus という名前の検索述語のメソッドも定義されます。このメソッドは文字列パラメータを受け取り、入力文字列が "saurus" で終わっているかどうかを示すブール値を返します。
Find ジェネリック メソッドは配列を先頭から走査し、次に各要素を EndsWithSaurus メソッドに渡します。EndsWithSaurus メソッドが要素 "Amargasaurus" に対して true を返すと、検索が停止します。
![]() |
---|
C# と Visual Basic では、Predicate<string> デリゲート (Visual Basic では Predicate(Of String)) を明示的に作成する必要はありません。これらの言語はコンテキストから正しいデリゲートを推測し、自動的に作成します。 |
FindLast ジェネリック メソッドを使用して、配列を末尾から逆方向に検索します。5 番目の位置で要素 "Dilophosaurus" が見つかります。FindAll ジェネリック メソッドを使用して、"saurus" で終わるすべての要素が格納された配列を返します。それらの要素が表示されます。
このコード例では、Exists と TrueForAll の各ジェネリック メソッドも示されています。
Imports System Public Class Example Public Shared Sub Main() Dim dinosaurs() As String = { "Compsognathus", _ "Amargasaurus", "Oviraptor", "Velociraptor", _ "Deinonychus", "Dilophosaurus", "Gallimimus", _ "Triceratops" } Console.WriteLine() For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur) Next Console.WriteLine(vbLf & _ "Array.Exists(dinosaurs, AddressOf EndsWithSaurus): {0}", _ Array.Exists(dinosaurs, AddressOf EndsWithSaurus)) Console.WriteLine(vbLf & _ "Array.TrueForAll(dinosaurs, AddressOf EndsWithSaurus: {0}", _ Array.TrueForAll(dinosaurs, AddressOf EndsWithSaurus)) Console.WriteLine(vbLf & _ "Array.Find(dinosaurs, AddressOf EndsWithSaurus): {0}", _ Array.Find(dinosaurs, AddressOf EndsWithSaurus)) Console.WriteLine(vbLf & _ "Array.FindLast(dinosaurs, AddressOf EndsWithSaurus): {0}", _ Array.FindLast(dinosaurs, AddressOf EndsWithSaurus)) Console.WriteLine(vbLf & _ "Array.FindAll(dinosaurs, AddressOf EndsWithSaurus):") Dim subArray() As String = _ Array.FindAll(dinosaurs, AddressOf EndsWithSaurus) For Each dinosaur As String In subArray Console.WriteLine(dinosaur) Next 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 ' 'Array.Exists(dinosaurs, AddressOf EndsWithSaurus): True ' 'Array.TrueForAll(dinosaurs, AddressOf EndsWithSaurus: False ' 'Array.Find(dinosaurs, AddressOf EndsWithSaurus): Amargasaurus ' 'Array.FindLast(dinosaurs, AddressOf EndsWithSaurus): Dilophosaurus ' 'Array.FindAll(dinosaurs, AddressOf EndsWithSaurus): 'Amargasaurus 'Dilophosaurus
using System; public class Example { public static void Main() { string[] dinosaurs = { "Compsognathus", "Amargasaurus", "Oviraptor", "Velociraptor", "Deinonychus", "Dilophosaurus", "Gallimimus", "Triceratops" }; Console.WriteLine(); foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine( "\nArray.Exists(dinosaurs, EndsWithSaurus): {0}", Array.Exists(dinosaurs, EndsWithSaurus)); Console.WriteLine( "\nArray.TrueForAll(dinosaurs, EndsWithSaurus): {0}", Array.TrueForAll(dinosaurs, EndsWithSaurus)); Console.WriteLine( "\nArray.Find(dinosaurs, EndsWithSaurus): {0}", Array.Find(dinosaurs, EndsWithSaurus)); Console.WriteLine( "\nArray.FindLast(dinosaurs, EndsWithSaurus): {0}", Array.FindLast(dinosaurs, EndsWithSaurus)); Console.WriteLine( "\nArray.FindAll(dinosaurs, EndsWithSaurus):"); string[] subArray = Array.FindAll(dinosaurs, EndsWithSaurus); foreach(string dinosaur in subArray) { Console.WriteLine(dinosaur); } } // 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 Array.Exists(dinosaurs, EndsWithSaurus): True Array.TrueForAll(dinosaurs, EndsWithSaurus): False Array.Find(dinosaurs, EndsWithSaurus): Amargasaurus Array.FindLast(dinosaurs, EndsWithSaurus): Dilophosaurus Array.FindAll(dinosaurs, EndsWithSaurus): Amargasaurus Dilophosaurus */
using namespace System; // 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() { array<String^>^ dinosaurs = { "Compsognathus", "Amargasaurus", "Oviraptor", "Velociraptor", "Deinonychus", "Dilophosaurus", "Gallimimus", "Triceratops" }; Console::WriteLine(); for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } Console::WriteLine("\nArray::Exists(dinosaurs, EndsWithSaurus): {0}", Array::Exists(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus))); Console::WriteLine("\nArray::TrueForAll(dinosaurs, EndsWithSaurus): {0}" , Array::TrueForAll(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus))); Console::WriteLine("\nArray::Find(dinosaurs, EndsWithSaurus): {0}", Array::Find(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus))); Console::WriteLine("\nArray::FindLast(dinosaurs, EndsWithSaurus): {0}" , Array::FindLast(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus))); Console::WriteLine("\nArray::FindAll(dinosaurs, EndsWithSaurus):"); array<String^>^ subArray = Array::FindAll(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)); for each(String^ dinosaur in subArray) { Console::WriteLine(dinosaur); } } /* This code example produces the following output: Compsognathus Amargasaurus Oviraptor Velociraptor Deinonychus Dilophosaurus Gallimimus Triceratops Array::Exists(dinosaurs, EndsWithSaurus): True Array::TrueForAll(dinosaurs, EndsWithSaurus): False Array::Find(dinosaurs, EndsWithSaurus): Amargasaurus Array::FindLast(dinosaurs, EndsWithSaurus): Dilophosaurus Array::FindAll(dinosaurs, EndsWithSaurus): Amargasaurus Dilophosaurus */

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からArray.FindAll ジェネリック メソッドを検索する場合は、下記のリンクをクリックしてください。

- Array.FindAll ジェネリック メソッドのページへのリンク