我有以下代码:
public class A
{
string Name {get; set};
string anotherProperty {get; set};
Dictionary<string, string> Attributes {get; set};
}
List<A> listA = new List<A>();
List<string> Filters = new List<string>();
现在,我要做的是从listA中按名称元素选择所有DISTINCT,其中字典属性键等于Filters列表中的任何值。
答案 0 :(得分:0)
现在,我要做的是从名称元素中选择所有DISTINCT listA其中字典属性键等于来自的任何值 过滤器列表。
要定义不同的by属性,您可以使用按名称定义组并获取第一个。要定义过滤器,可以使用字典中的Keys
属性来搜索过滤器列表中的任何键。
var result = listA.Where(x => x.Attributes.Keys.Any(a => Filters.Contains(a)))
.GroupBy(x => x.Name)
.Select(x => x.First())
.ToList();