我想要的是一种光滑的方式,如
{ A, B, C }
---> { {A, B}, {A, C}, {B, C} }
其中A
,B
和C
的类型为Widget
,而{ A, B, C }
的类型为Widget[]
且{ {A, B}, {A, C}, {B, C} }
为类型为IEnumerable<Pair<Widget,Widget>>
或IEnumerable<Tuple<Widget,Widget>>
。
答案 0 :(得分:0)
可以使用简单的for循环,应该为您提供所需的对如果您在索引方面寻找唯一
public IEnumerable<IEnumerable<T>> UniquePairs<T>(T[] arr)
{
for(int i=0;i<arr.Length;i++)
{
for(int j=i+1;j<arr.Length;j++)
{
yield return new[]{ arr[i],arr[j] };
}
}
}