如何返回Linq查詢中的特定類型?我知道你可以使用ToList()返回一個特定對象的列表,但你如何返回一個非列表?Linq返回特定類型
MyObj x = from x in list where x.id == 99 select x;
如何返回Linq查詢中的特定類型?我知道你可以使用ToList()返回一個特定對象的列表,但你如何返回一個非列表?Linq返回特定類型
MyObj x = from x in list where x.id == 99 select x;
MyObj x = list.FirstOrDefault(i=>i.id == 99);
替代IEnumerable
方法,您可以使用返回單個項目:
list.Single(i=>i.id == 99)
:如果沒有找到匹配或多次找到匹配的拋出異常。list.SingleOrDefault(i=>i.id == 99)
:如果找不到匹配項,則返回null,如果找到多個匹配項則引發異常。list.First(i=>i.id == 99)
:如果找不到匹配項,則會引發異常。如果找到多個匹配項,則返回列表中的第一個項目。list.FirstOrDefault(i=>i.id == 99)
:如果找不到匹配項,則返回null。如果找到多個匹配項,則返回列表中的第一個項目。MyObj x = (from x in list where x.id == 99 select x).Single();
如果您預計ID可能不存在
,那麼你可以使用的SingleOrDefault爲類型(可能是在這種情況下空)返回默認值。
您當然可以使用First(),但我會保持警惕,因爲如果您希望只返回一個項目,這可能會隱藏錯誤。
MyObj x = list.Where(x => x.id == 99).FirstOrDefault();
您正在使用「特定類型」這個詞來表示「實例」。 –