如何从对象集合中获取唯一的对象对

本文关键字:对象 唯一 获取 集合 | 更新日期: 2023-09-27 17:57:40

我想要的是一种巧妙的方式,就像

{ A, B, C } ---> { {A, B}, {A, C}, {B, C} }

其中 ABC 的类型为 Widget{ A, B, C } 的类型为 Widget[]{ {A, B}, {A, C}, {B, C} } 的类型为 IEnumerable<Pair<Widget,Widget>>IEnumerable<Tuple<Widget,Widget>>

如何从对象集合中获取唯一的对象对

可以使用一个简单的 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] };
      }
    }
}