我试图逐项查找。
Item item = Shop.Items.Values.First(i => i.Name.Contains(partOfName))
我希望下一步
if (item == null) // if not found
{
// not found code
}
...但是当找不到项目时我得到InvalidOperationException
。
首先想到的是
try
{
Item item = Shop.Items.Values.First(i => i.Name.Contains(partOfName))
}
catch(InvalidOperationException ex)
{
// not found code
}
处理它的最佳方法是什么?也许没有try / catch?
修改 解决方案:
Item item = Shop.Items.Values.FirstOrDefault(i => i.Name.Contains(partOfName))
if (item == null) // if not found
{
// not found code
}
答案 0 :(得分:2)
First
会抛出。 FirstOrDefault
将返回default<T>
。对于参考类型,即null
。