如何在块中使用"x"变量?如果statement为true,我想返回x的Id字段.
if (UserList.Any(x => x.Type == (int)UserType.SuperUser))
{
return x.Id;
}
Run Code Online (Sandbox Code Playgroud)
您无法访问lambda表达式之外的"LINQ变量".
你想要做的是获得满足条件Id的任何元素的属性.xx.Type == (int)UserType.SuperUser
在这种情况下,请替换你Any()的FirstOrDefault().
var item = UserList.FirstOrDefault(x => x.Type == (int)UserType.SuperUser);
if(item != null)
return item.Id;
Run Code Online (Sandbox Code Playgroud)
FirstOrDefault(x => condition on x)返回null满足条件的第一个元素,如果没有元素满足条件.
如果要获取Id满足条件的所有元素的值,请使用Where和Selectextention方法:
return UserList.Where(x => x.Type == (int)UserType.SuperUser).Select(x => x.Id);
Run Code Online (Sandbox Code Playgroud)
Where(x => condition(x))IEnumerable如果您希望获得"正常"列表,则返回包含满足条件的所有元素,ToList()之前添加;.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |