泛型初学者学习笔记
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace P247
{
/// <summary>
/// 泛型初学者学习笔记
/// </summary>
public class Racer
{
private string name;
public string Name
{
get
{
return name;
}
}
private string car;
public string Car
{
get
{
return car;
}
}
public Racer(string name, string car)
{
this.name = name;
this.car = car;
}
public override string ToString()
{
return name + "," + car;
}
}
public class FindRacer
{
private string car;
public FindRacer(string car)
{
this.car = car;
}
/// <summary>
/// 定义谓词方法
/// </summary>
/// <param name="racer"></param>
/// <returns></returns>
public bool DrivintCarPredicate(Racer racer)
{
return racer.Car == car;
}
}
class Program
{
static void Main(string[] args)
{
List<Racer> racer = new List<Racer>();
racer.Add(new Racer("Michael", "Ferrari"));
racer.Add(new Racer("Juan Pablo Montoya", "Mclaren-Mercedes"));
racer.Add(new Racer("Kimi Raikkonen", "Maclaren-Mercedes"));
racer.Add(new Racer("Mark Webber", "Williams-BMW"));
racer.Add(new Racer("Rubens Barichello", "Ferrari"));
FindRacer finder = new FindRacer("Ferrari");
//将所用“Ferrari”的racer返回到racer2
List<Racer> racer2 = racer.FindAll(new Predicate<Racer>(finder.DrivintCarPredicate));
foreach (Racer rr in racer2)
{
Console.WriteLine(rr);
}
}
}
}