泛型List使用示例

using  System;
using  System.Collections;
using  System.Collections.Generic;
using  System.Text;


namespace  Wrox.ProCSharp.VectorAsCollection
{
    
class MainEntryPoint
    
{
        
static void Main(string[] args)
        
{

            List
<Racer> racers = new List<Racer>();
            racers.Add(
new Racer("Michael Schumacher""Ferriai"));
            racers.Add(
new Racer("Juan Pablo Montoya""McLaren-Mercedes"));
            racers.Add(
new Racer("Kimi Railkkonen""McLaren-Mercedes"));
            racers.Add(
new Racer("Mark Webber""Williams-BMW"));
            racers.Add(
new Racer("Rubens Barichello""Ferriai"));

            
//遍历List
            foreach (Racer  R in racers)
            
{
                Console.WriteLine(R);
            }


            Console.WriteLine(
"/n----------FindAll Method Demo-------------/n");

            
//查找findAll
            FindRacer finder = new FindRacer("Ferriai");
            
foreach (Racer r in racers.FindAll(new Predicate<Racer>(finder.DrivingCarPredicate)))//Predicate是一个泛型的委托
            {
                Console.WriteLine(r);
            }


            Console.WriteLine(
"/n----------Find Method Demo-------------");
            
//Find方法(若找到的结果不止一条时,显示第一条)
            FindRacer f2 = new FindRacer("McLaren-Mercedes");

            Racer R2 
= racers.Find(new Predicate<Racer>(f2.DrivingCarPredicate));

            
if (R2 != null)
            
{
                Console.WriteLine(R2);
            }

            
else 
            
{
                Console.WriteLine(
"No racer drive McLaren-Mercedes ");
            }


            Console.WriteLine(
"/n----------FindLast Method Demo-------------");
            FindRacer f3 
= new FindRacer("McLaren-Mercedes");

            Racer R3 
= racers.FindLast(new Predicate<Racer>(f2.DrivingCarPredicate));

            
if (R3 != null)
            
{
                Console.WriteLine(R3);
            }

            
else
            
{
                Console.WriteLine(
"No racer drive McLaren-Mercedes ");
            }


            Console.ReadLine();
        }


        
    }



    
/// <summary>
    
/// 查找Racer的类(根据car查找)
    
/// </summary>

    public class FindRacer
    
{
        
private string _car;
        
public FindRacer(string car)
        
{
            
this._car = car;
        }


        
public bool DrivingCarPredicate(Racer r)
        
{
            
return r.Car == _car;
        }

    }


    
/// <summary>
    
/// Racer类
    
/// </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;
        }


    }

}
运行结果:

Michael Schumacher,Ferriai
Juan Pablo Montoya,McLaren-Mercedes
Kimi Railkkonen,McLaren-Mercedes
Mark Webber,Williams-BMW
Rubens Barichello,Ferriai

----------FindAll Method Demo-------------

Michael Schumacher,Ferriai
Rubens Barichello,Ferriai

----------Find Method Demo-------------
Juan Pablo Montoya,McLaren-Mercedes

----------FindLast Method Demo-------------
Kimi Railkkonen,McLaren-Mercedes


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值