2016-07-20 168 views
-4

我要的是做這樣一個漂亮的方式如何從一組對象中獲得唯一的對象對?

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

其中ABCWidget類型和{ A, B, C }Widget[]型和{ {A, B}, {A, C}, {B, C} }IEnumerable<Pair<Widget,Widget>>類型或IEnumerable<Tuple<Widget,Widget>>的。

+5

好,從你身邊的任何努力? –

+0

聽起來像一些循環會很好,你用什麼算法來生成你給出的示例輸出(a,ba,cb,c) – pm100

+0

@drheart所有組合和唯一對不是一回事,對於得到所有的組合和過濾,如果你只是尋找對 – konkked

回答

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] }; 
     } 
    } 
} 
+0

如果downvoter想提供反饋會很樂意提高我的答案 – konkked