具有不同名称的C#ToListAsync

时间:2017-01-23 13:36:24

标签: c#

您好我想从DB中选择一个城市列表,没有重复的名称。 在研究了这个问题后,我尝试了使用First和Distinct的多种组合,但我似乎无法正确使用语法。

任何见解都会很棒。以下是我的代码

城市

PK Id

名称

IsActive

C#

var cities = await Db.Addresses.Where(x => x.IsActive == true).Distinct().ToListAsync();

2 个答案:

答案 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();