泛型初学者学习笔记

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);
            }
        }
    }
}

posted @ 2008-11-29 22:14  百利  阅读(349)  评论(2编辑  收藏  举报