从列表值创建对

Nik*_*ruk 1 .net c# list

我有一个带有一些值的列表,比方说1 2 3 4 5 6

我需要像这样配对:12 13 14 15 16 23 24 25 26 34 35 36 45 46 56

基本上,我需要将它们全部混合以创建独特的值集.

您对如何创建这样的新列表有什么想法吗?

谢谢您的意见!

Spe*_*evy 5

如果你喜欢Linq:

var ar = new int[] {1, 2, 3, 4, 5};

var combo = (from left in ar
            from right in ar where right > left 
            select new { left, right }).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 使用 LINQ 做得很好。我不明白为什么这里的许多其他答案都使用 `for`/`foreach` 循环 - 它们只是更难以理解。LINQ 更清晰,更易于维护。+1 (2认同)

小智 5

使用Linq和元组:

var arr = new[] { 1, 2, 3, 4, 5, 6 };

arr.SelectMany((fst, i) => arr.Skip(i + 1).Select(snd => (fst, snd)));
Run Code Online (Sandbox Code Playgroud)