2016-07-20 14 views
-4

Was ich will, ist eine glatte Art und Weise wie zu tunWie bekomme ich eindeutige Objektpaare aus einer Sammlung von Objekten?

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

wo A, B und C vom Typ sind Widget und { A, B, C } ist vom Typ Widget[] und { {A, B}, {A, C}, {B, C} } ist vom Typ IEnumerable<Pair<Widget,Widget>> oder IEnumerable<Tuple<Widget,Widget>> .

+5

gut, jede Anstrengung von Ihrer Seite suchen? –

+0

klingt wie einige loops wäre gut, welcher algorithmus haben sie verwendet, um die beispielausgabe zu generieren (a, ba, cb, c) – pm100

+0

@drheart Alle kombinationen und einzigartige paare sind nicht die gleiche sache, würde keinen sinn machen Holen Sie sich alle Kombinationen und Filter, wenn Sie nur nach den Paaren suchen – konkked

Antwort

0

Kann for-Schleife mit einem einfachen tun, sollten Sie die Paare geben müssen Sie , wenn Sie für einzigartig in Bezug auf Index

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

Wenn Downvoter Rückmeldung geben möchte würde ich gerne meine Antwort verbessern – konkked

Verwandte Themen