我正在使用迭代列表的LINQ表达式执行查询,如下所示:
feedVideos.Add(vid.Where(f => f.UserName == friend.Friend_UserName).FirstOrDefault());
Run Code Online (Sandbox Code Playgroud)
如果没有任何对象,则此表达式将空值添加到列表中.我不知道这是不是正常的行为,但是如何在列表中没有任何对象时添加任何内容?
而不是使用FirstOrDefault获取可能为null的值,只需使用Take将序列限制为一个项目,留下一个大小为零或一的序列,您可以将其添加到列表中:
feedVideos.AddRange(vid.Where(f => f.UserName == friend.Friend_UserName).Take(1));
Run Code Online (Sandbox Code Playgroud)
使用简单if:
var result=vid.FirstOrDefault(f => f.UserName == friend.Friend_UserName);
if(result!=null)
{
feedVideos.Add(result);
}
Run Code Online (Sandbox Code Playgroud)
如果您的列表没有值,那么FirstOrDefault将返回null,所以,是的,这是正常行为.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |