在C#中使用条件表达式和方法

我有一个List<Animal>那里Animal有一个:

int GetId();

返回动物的ID。

给定一个ID,获得特定动物的最佳方法是什么?我想知道是否有正确的方法来执行以下操作:

targetId = 2;
targetAnimal = animalList.Select(a => a.GetId() == targetId)


江户川乱折腾
浏览 205回答 3
3回答

慕姐4208626

您可以尝试这些方法.Single或.SingleOrDefaulttargetAnimal&nbsp;=&nbsp;animalList.SingleOrDefault(a&nbsp;=>&nbsp;a.GetId()&nbsp;==&nbsp;targetId).First或.FirstOrDefaulttargetAnimal&nbsp;=&nbsp;animalList.FirstOrDefault(a&nbsp;=>&nbsp;a.GetId()&nbsp;==&nbsp;targetId)您可能想了解更多有关这些功能的信息Single()&nbsp;-仅有1个结果,如果不返回任何结果或多个结果,则引发异常。SingleOrDefault()&nbsp;–与Single()相同,但是它可以处理空值。First()&nbsp;-至少有一个结果,如果没有返回结果,则抛出异常。FirstOrDefault()&nbsp;-与First()相同,但是不抛出任何异常,或者在没有结果时返回null。

子衿沉夜

您可以使用First或FirstOrDefault方法。如果没有元素的ID,前者将抛出异常;&nbsp;后者将返回default(T)(这将null用于引用类型(类),而所有字段都将初始化为默认值用于值类型(结构))。return&nbsp;animalList.First(a&nbsp;=>&nbsp;a.GetId()&nbsp;==&nbsp;targetID);和return&nbsp;animalList.FirstOrDefault(a&nbsp;=>&nbsp;a.GetId()&nbsp;==&nbsp;targetID);如果要返回默认值/后备值而不是default(T),则可以使用null-coalescing运算符:return&nbsp;animalList.FirstOrDefault(a&nbsp;=>&nbsp;a.GetId()&nbsp;==&nbsp;targetID)&nbsp;??&nbsp;theFallbackValue;
打开App,查看更多内容
随时随地看视频慕课网APP