2017-02-23 63 views
-6

我需要一些帮助来组合我的列表中的元素而没有重复的元素。组合列表中的元素

来源:

var data = new List<string>(); 
data.Add("A"); 
data.Add("B"); 
data.Add("C"); 
data.Add("D"); 

预期结果,元组的列表:

List<Tuple<string,string>>

元组(A,B)

元组(A,C)

元组(A,D)

元组(B,C)

元组(B,d)

元组(C,d)

忽略元组:

元组(B,A ) - 因为列表中有A,B。

元组(C,A)

元组(C,B)

元组(d,A)

元组(d,B)

元组(d,C)

+0

? – martijnn2008

+2

上周我在JavaScript中做了完全相同的事情,针对不同的问题 –

+0

为什么你不把它包含在你的文章中。您可以使用您的文章下方的[编辑](http://stackoverflow.com/posts/42418555/edit)按钮添加信息 –

回答

0

您是否正在寻找?

var tupleList = new List<Tuple<string, string>>(); 
for (int i = 0; i < data.Count; i++) 
{ 
    for (int j = i + 1; j < data.Count; j++) 
    { 
     tupleList.Add(new Tuple<string, string>(data[i], data[j])); 
    } 
} 
+0

YES!嵌套循环不好,但工作正常。谢谢 – Ferrari

0

这里是解决方案,但小号& O不解决家庭作业(至少表明你试图解决的问题)地方:你在哪里在你的例子添加元组

 var data = new List<string>(4) { "A", "B", "C", "D" }; // unique keys 
     var tuples = new List<Tuple<string, string>>() { Capacity = data.Count * (data.Count + 1)/2}; 
     for (int i = 0; i < data.Count; ++i) 
      for (int j = i + 1; j < data.Count; ++j) 
       tuples.Add(Tuple.Create(data[i], data[j]));