我需要一些帮助来组合我的列表中的元素,而不需要重复的元素。
来源:
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 :(得分: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]));