我有缓存数据列表
private static List<City> CachedCities
{
get { ... }
}
现在从缓存列表中我想使用linq提取以下内容
private someOtherMethod()
{
foreach (var item in someData) {
string cityName = from c in CachedCities where c.Id == item.Address.CityId select c.Name;
...
}
}
我在linq语句中遇到错误
错误1无法隐式转换类型
'System.Collections.Generic.IEnumerable<string>'
至'string'
。一个 存在显式转换(您是否错过了演员?)
P.S。 c.Id和Address.CityId都是字符串。
答案 0 :(得分:3)
尝试使用此lambda查询语法
string cityName = CachedCities.Where(x => x.Id == item.Address.CityId)
.Select(a => a.Name)
.FirstOrDefault();
答案 1 :(得分:0)
这是一个编译错误。您分配给cityName的类型是IEnumerable,您将其声明为字符串。
尝试以下方法:
string cityName = CachedCities.Where(c => c.Id == item.Address.CityId).Select(x => x.Name).FirstOrDefault();