Google Code Prettify

Fix: Sequence contains no elements(序列不包含元素)

當您收到 LINQ 錯誤“序列不包含元素”時,這通常是因為您使用的是First()orSingle()命令而不是FirstOrDefault()and SingleOrDefault()。


這也可能是由以下命令引起的:

FirstAsync()

SingleAsync()

Last()

LastAsync()

Max()

Min()

Average()

Aggregate()

 

 

當您收到 LINQ 錯誤“序列不包含元素”時,這通常是因為您使用的是 First() 或 Single() 命令,而不是 FirstOrDefault() 和 SingleOrDefault()。


以下面的代碼為例,它對 LINQ 查詢的結果使用 First()。如果沒有結果,調用 First() 會觸發“Sequence contains no elements”錯誤。:


var rel = (from r in relEnds

   where r.Contains(added.OtherEndKey(entity.EntityKey))

   select r).OfType<EntityReference>().First();


要解決此問題,您只需將 First() 更改為 FirstOrDefault() ,當選擇沒有結果時返回 null 值:


var rel = (from r in relEnds

   where r.Contains(added.OtherEndKey(entity.EntityKey))

   select r).OfType<EntityReference>().FirstOrDefault();