合并列表的元素

时间:2017-02-23 14:29:41

标签: c# list tuples

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

来源:

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)

2 个答案:

答案 0 :(得分: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]));
     }
 }

答案 1 :(得分:0)

这是解决方案,但S&amp; 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]));