所以我刚开始使用 LINQ,它看起来很有用,但我在从查询中获取值时遇到了一些问题。
这是我的原始代码,但我想用 LINQ 替换:
foreach (LocationModel loc in locationList)
{
if (loc.Name.Equals(location, StringComparison.CurrentCultureIgnoreCase))
{
locationId = loc.Id;
break;
}
}
这是我为做同样的事情而编写的 LINQ:
var matchQuery = from loc in locationList
where loc.Name.ToLowerInvariant() == location.ToLowerInvariant()
select loc.Id;
现在如何从 matchQuery 中实际获取 int Id?
最佳答案
如果您只想要第一项,则使用 FirstOrDefault
:
var id = (from loc in locationList
where loc.Name.ToLowerInvariant() == location.ToLowerInvariant()
select loc.Id).FirstOrDefault();
或者在方法语法中:
var id = locationList.FirstOrDefault(loc => loc.Name.ToLowerInvariant() == location.ToLowerInvariant())?.Id;
关于c# - 从 LINQuery 获取单个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785947/