Dre*_*kes 114
你有几个选择:
list.Where(i => i.Property == value).FirstOrDefault(); // C# 3.0+
Run Code Online (Sandbox Code Playgroud)使用List.Find:
list.Find(i => i.Property == value); // C# 3.0+
list.Find(delegate(Item i) { return i.Property == value; }); // C# 2.0+
Run Code Online (Sandbox Code Playgroud)如果未找到匹配项,则这两个选项都会返回default(T)(null对于引用类型).
如下面的评论中所述,您应该为您的方案使用适当的比较形式:
== 对于简单值类型或需要使用运算符重载的情况object.Equals(a,b) 对于类型未知或可能已覆盖比较的大多数情况string.Equals(a,b,StringComparison) 用于比较字符串object.ReferenceEquals(a,b) 用于身份比较,通常是最快的abe*_*nky 28
List.Find有什么问题?
在我们能够提供真正有用的答案之前,我认为我们需要更多关于您所做的事情以及失败原因的信息.
var myItem = myList.Find(item => item.property == "something");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114748 次 |
| 最近记录: |