查询以确定多个元素是否具有相同的属性值?

时间:2011-06-28 05:47:39

标签: .net vb.net linq .net-4.0

我正在尝试编写一个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,有人可以帮我一把吗?

1 个答案:

答案 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!");
    }