我正在尝试编写一个LINQ查询,如果有多个对象具有相同值的属性,则返回true。
这是我到目前为止所提出的:
Formatters.Where(Function(f As DataModel.Formatter) _
Formatters.Select(Function(f2 As DataModel.Formatter) f2.Name.ToLower()).Contains(f.Name.ToLower())).Count > 1
然而,只要列表中的元素超过1个元素,上面的内容总是返回true,有人可以帮我一把吗?
答案 0 :(得分:2)
这是在C#中。应该很容易转换为VB.NET,但我没有方便的工作室安装:
var query = from g in Formatters.GroupBy( f => f.Name, StringComparer.OrdinalIgnoreCase)
where g.Count () > 1
select g;
if (query.Any()){
Console.WriteLine("Duplicate names!");
}