在同一个键下对重复元素进行分类

时间:2014-10-11 13:38:19

标签: c# linq list

我有这个清单:

public class Connection
{
    public string Name { get; set; }
    public string IP { get; set; }
}

List<Connection> connectionsList;

我希望从列表中获取共享相同Name的所有IP。 我试过了:

    var duplicateIPConnections =
        connectionsList.GroupBy(x => x.IP)
            .Where(g => g.Count() > 1)
            .SelectMany(g => g);

但结果是一个可枚举的所有元素出现在彼此之后。 我想要的是元素将在分配它们共享的IP

1 个答案:

答案 0 :(得分:0)

   var duplicateIPConnections = connectionsList.OrderBy(x => x.IP)
                   .GroupBy(x => x.IP)
                   .Select(g => new
                   {
                       Type = g.Key,
                       Sites = g.Select(obj => new
                       {
                           obj.IP,
                           obj.Name
                       })
                   });