c# – 如何在List中搜索具有其字段值的对象
发布时间:2020-12-15 20:50:12 所属栏目:百科 来源:网络整理
导读:问题是如何从List获取具有其字段值的对象 我有一个名为f_objects的列表,其中包含对象. private ListF_object f_objects; 我还有一个有一些价值的字符串: string name = "something"; F_object有一个方法返回名为name的字段: public string GetName(){ retu
问题是如何从List获取具有其字段值的对象
我有一个名为f_objects的列表,其中包含对象. private List<F_object> f_objects; 我还有一个有一些价值的字符串: string name = "something"; F_object有一个方法返回名为name的字段: public string GetName() { return this.name; } 是否有内置的方法来比较列表中的对象与此字段值?或者我应该做一个循环并比较如下: foreach(F_object ob in f_objects) { if String.Equals(name,ob.GetName()) F_object found = ob; } 解决方法
在linq中有多种方法可以做到这一点.
第一个是使用.Where.如果可以有更多匹配,这将满足您的需求 IEnumerable<F_object> result = f_objects.Where(obj=>obj.GetName() == name); 第二个选项是如果你只关心第一个命中,即使可能有多个,在这种情况下使用.First f_object result = f_objects.First(obj=>obj.GetName() == name); 或者如果零点击是可接受的情况(非例外) f_object result = f_objects.FirstOrDefault(Obj=>obj.GetName() == name); 如果你只有一个命中,那么使用.Single f_object result = f_objects.Single(obj=>obj.GetName() == name); 或者如果你只能有一个或零点击,那么使用.SingleOrDefault f_object result = f_objects.SingleOrDefault(obj=>obj.GetName() == name); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |