晨风

-------------------- 业精于勤,荒于嬉;行成于思,毁于随

导航

list.Contain 与 list.FindIndex()用法记录

Posted on 2011-11-23 18:21  shenyixin  阅读(5092)  评论(0编辑  收藏  举报
List<Plan> Plans = new List<Plan>();

//存放服务器中的当前用户所接受的项目计划列表。

//Plan 类包含PlanID等属性。


if (Plans.Contains<Plan>(changedPlan, Comparers.Default)){}

//判断Plans中是否存在与changedPlan相同的Plan。

//(只需判断其PlanID是否相同即可。其他内容可忽略)

// Comparers.Default为自定义比较器。



public class Comparers : IEqualityComparer<Plan>

{

//比较器定义其继承与IEqualityComparer<Plan>接口

public static Comparers Default = new Comparers();

#region IEqualityComparer<Plan> 成员

public bool Equals(Plan x, Plan y)
{

return x.PlanID.Equals(y.PlanID);//比较PlanID是否相同

}

public int GetHashCode(Plan obj)

{

return obj.PlanID.GetHashCode();

}

#endregion

}

List<Plan> Plans = new List<Plan>();

Plans.FindIndex(new Predicate<Plan>(findPlan));//在Plans中查找与给定PlanID相同的Plan的Index

bool findPlan(Plan p)//比较器(这里的p为Plans中的元素,即p.PlanID与给定的PlanID比较)

{

 return p.PlanID.Equals(PlanID);

}