分享

C#中Find及Findindex用法

 孙无者 2020-06-03

Findindex及find中需要一个参数,可用一个Lambda表达式来表示。

Findindex返回查找内容在列表中的位置,find返回参数相同类型的对象。

注意,如果找不到会报错哦,所以最好加上try.

示例如下:

假设有一个list,里面有10组数据,每组数据我都放到一个class中。现在演示一下查找的方法。

以下是用来表示数据的class,其实用struct也是一样的

public class MyInfo
{
    
    public int age;
    public double value;
    public string name;
    
}

代码调用:

List <MyInfo> mystr=newList<MyInfo>(); //创建一个存储数据的LIST      
            
            int []agearray=newint[]{20,30,60,14,16,42,34,45,22,31};
            string []names=newstring[]{'A','B','C','D','E','F','G','H','I','J'};
            
            for(int i=0;i<10;i++)//将数据放入LIST中
            {MyInfo stem=newMyInfo();
                stem.name=names[i];
                stem.age=agearray[i];
                stem.value=i/3;                
                mystr.Add(stem);
            }
            
            try//防止查找内容不存在的出错
            {

            int iage=mystr.Find(a=>a.name=='C').age;//查找名称为“C“的人的年龄 
            lbLog.Items.Add('Find people C's age,result: '+iage.ToString());//在listbox(lbLog)中显示
            

            string sname=mystr.Find(a=>a.age==34).name;//查找年龄为34的人名
            lbLog.Items.Add('Find the people name whose age is 34,Result: '+sname);//在listbox(lbLog)中显示
            
            int imatch=mystr.FindIndex(a=>a.name=='D');//查找是否存在叫'D'的人,返回list中有位置
            
            lbLog.Items.Add('Find match item is: '+imatch.ToString());//在listbox(lbLog)中显示
            }
            catch
            {
                lbLog.Items.Add('Can't find anything!');
            }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约