2017-02-23 91 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]));