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

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


Predicate は、渡されたオブジェクトがデリゲートで定義された条件と一致した場合にtrue を返すメソッドのデリゲートです。array の要素は、それぞれ Predicate に渡されます。この処理は、Array 内の最後の要素から、先頭の要素まで繰り返し行われます。一致する要素が見つかった時点で処理が終了します。

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.FindLast ジェネリック メソッドを検索する場合は、下記のリンクをクリックしてください。

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