是否有一個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