我有一個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 關注
- 235 瀏覽
添加回答
舉報
0/150
提交
取消