Findindex及find中需要一个参数,可用一个Lambda表达式来表示。
Findindex返回查找内容在列表中的位置,find返回参数相同类型的对象。
注意,如果找不到会报错哦,所以最好加上try.
示例如下:
假设有一个list,里面有10组数据,每组数据我都放到一个class中。现在演示一下查找的方法。
以下是用来表示数据的class,其实用struct也是一样的
定义一个类MyInfo
class MyInfo
{
public int age;
public double value;
public string name;
}
List<MyInfo> list = new List<MyInfo>(); //创建一个存储数据的list
int[] agearr = new int[] { 20, 30, 60, 14, 16, 42, 34, 45, 22, 31 };
string[] names = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
for(int i=0;i<agearr.Length;i++)//将数据放入list中
{
MyInfo mi = new MyInfo();
mi.age = agearr[i];
mi.name = names[i];
mi.value = i / 3;
list.Add(mi);
}
Response.Write("<br>");
if (list!=null)
{
for (int i = 0; i < list.Count; i++)//循环显示list中内容
{
Response.Write(list[i].age + "," + list[i].name+","+list[i].value+"<br>");
}
Response.Write("<br>");
MyInfo mm = list.Find(a => a.age == 45);//查找年龄为45的人
string sname=list.Find(a=>a.age==34).name; //查找年龄为34的人名
int iage=list.Find(a=>a.name=="C").age; //查找名称为“C“的人的年龄
int imatch=list.FindIndex(a=>a.name=="D"); //查找是否存在叫"D"的人,返回list中有位置
Response.Write(mm.age + "," + mm.name + "<br>");
}
else
{
Response.Write("没有内容");
}