Sequence contains no matching element
问题描述


InvalidOperationException: Sequence contains no matching element

问题原因
使用LinQ进行查询时使用到了First,当First没有找到满足条件的元素时,就会报“Sequence contains no matching element ”

var result = infos.First(_=> _.IsHint);

解决办法

将First换为FirstOrDefault

//var result = infos.First(_=> _.IsHint);
//替换为
var result = infos.FirstOrDefault(_=> _.IsHint);

//注意,此方法返回的结果是可以为空的,需要进行非空判断
if(result != null)
{
    //YourFunction
}