MSDN を見た後、T のメンバー変数を使用して List で Find() メソッドを使用するための適切な述語をどのように形成する必要があるかはまだ不明です (T はクラスです)。
例えば:
public class Car
{
public string Make;
public string Model;
public int Year;
}
{ // somewhere in my code
List<Car> carList = new List<Car>();
// ... code to add Cars ...
Car myCar = new Car();
// Find the first of each car made between 1980 and 2000
for (int x = 1980; x < 2000; x++)
{
myCar = carList.Find(byYear(x));
Console.Writeline(myCar.Make + myCar.Model);
}
}
「byYear」述語はどのように見えるべきですか?
(MSDN の例では、恐竜のリストについてのみ説明し、不変の値「saurus」のみを検索します。値を述語に渡す方法は示していません...)
編集: 私は VS2005/.NET2.0 を使用しているため、ラムダ表記は利用できないと思います...
EDIT2:異なる値に基づいてプログラムで「検索」したい場合があるため、例の「1999」を削除しました。for-do ループを使用して、例を 1980 年から 2000 年までの自動車の範囲に変更しました。