是否有一个linq lambda搜索方法在搜索列表时返回null,而不是抛出异常?Find()和First()抛出异常,如何返回null?
我目前的解决方案是这样的:(避免被抛出的异常)
if (list.Exists(x => x.Foo == Foo))
{
var listItem = list.Find(x => x.Foo == Foo);
}
就觉得这是不对的重复表达。
喜欢的东西...
var listItem = list.Find(x => x.Foo == Foo);
if (listItem != null)
{
//Do stuff
}
...感觉不如我。还是仅仅是我?
你对这个有更好的方法吗? (该解决方案不必被返回null,只是一个更好的解决方案是好的)
,不要忘记 - 如果你的列表将包含该泛型类型([默认值表]的默认值(http://msdn.microsoft。 com/en-us/library/83fhsxwc.aspx)),您不能使用Find方法判断值是否存在。在这些情况下,你应该使用FindIndex,Exists或Contains。 – HuBeZa 2011-04-10 17:47:58