我有一个List<Animal>那里Animal有一个:int GetId();返回动物的ID。给定一个ID,获得特定动物的最佳方法是什么?我想知道是否有正确的方法来执行以下操作:targetId = 2;
targetAnimal = animalList.Select(a => a.GetId() == targetId)
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
您可以尝试这些方法
.Single或.SingleOrDefault
targetAnimal = animalList.SingleOrDefault(a => a.GetId() == targetId)
.First或.FirstOrDefault
targetAnimal = animalList.FirstOrDefault(a => a.GetId() == targetId)
您可能想了解更多有关这些功能的信息
Single() -仅有1个结果,如果不返回任何结果或多个结果,则引发异常。
SingleOrDefault() –与Single()相同,但是它可以处理空值。
First() -至少有一个结果,如果没有返回结果,则抛出异常。
FirstOrDefault() -与First()相同,但是不抛出任何异常,或者在没有结果时返回null。
子衿沉夜
TA贡献1828条经验 获得超3个赞
您可以使用First
或FirstOrDefault
方法。
如果没有元素的ID,前者将抛出异常; 后者将返回default(T)
(这将null
用于引用类型(类),而所有字段都将初始化为默认值用于值类型(结构))。
return animalList.First(a => a.GetId() == targetID);
和
return animalList.FirstOrDefault(a => a.GetId() == targetID);
如果要返回默认值/后备值而不是default(T)
,则可以使用null-coalescing运算符:
return animalList.FirstOrDefault(a => a.GetId() == targetID) ?? theFallbackValue;
- 3 回答
- 0 关注
- 204 浏览
添加回答
举报
0/150
提交
取消