C#将不同的值合并为一组

时间:2016-10-22 08:57:16

标签: c#

如果我有

var numbers = new List<string> { "1", "2", "2", "3", "3"};

我想从数字(上面)

获取值(下面)
[["1","2","3"],["2","3"]]

每个数组都有不同的值,所以我会得到2个数组

更多示例: 新清单{“1”,“2”,“3”,“3”,}至[[“1”,“2”,“3”],[“3”]]

规则: 一个数组或列表中的不同值

有人可以建议如何轻松地做到这一点吗?谢谢!

1 个答案:

答案 0 :(得分:0)

这对我有用:

var numbers = new List<string> { "1", "2", "2", "3", "3"};

var lookup = numbers.ToLookup(n => n);

var results =
    Enumerable
        .Range(0, numbers.Count())
        .Select(n =>
            lookup
                .SelectMany(l => l.Skip(n).Take(1))
                .ToList())
        .Where(xs => xs.Any())
        .ToList();

我明白了:

result