您好我想从DB中选择一个城市列表,没有重复的名称。 在研究了这个问题后,我尝试了使用First和Distinct的多种组合,但我似乎无法正确使用语法。
任何见解都会很棒。以下是我的代码
表
城市
PK Id
名称
IsActive
C#
var cities = await Db.Addresses.Where(x => x.IsActive == true).Distinct().ToListAsync();
答案 0 :(得分:2)
使用DistinctBy(x=>x.Name)
var cities = await Db.Addresses.Where(x => x.IsActive == true).DistinctBy(x=>x.Name).ToListAsync();
DistincBy
:
public static IEnumerable<t> DistinctBy<t>(this IEnumerable<t> list, Func<t, object> propertySelector)
{
return list.GroupBy(propertySelector).Select(x => x.First());
}
答案 1 :(得分:1)
您可以尝试以下代码
var cities = await Db.Addresses.Where(x => x.IsActive == true).Select(x=> x.Cities).Distinct().ToListAsync();