2016-12-04 13 views
0

私はこのコードを持っている:C#ショーのIEnumerableの要素

static void Main(string[] args) 
     { 
      IEnumerable<IEnumerable<int>> result = GetCombinations(Enumerable.Range(1, 3), 2); 

     } 

     static IEnumerable<IEnumerable<T>> GetCombinations<T>(IEnumerable<T> list, int length) 
     { 
      if (length == 1) return list.Select(t => new T[] { t }); 

      return GetCombinations(list, length - 1) 
       .SelectMany(t => list, (t1, t2) => t1.Concat(new T[] { t2 })); 
     } 

質問は、私はちょうど結果を平らにするSelectManyを使用IEnumerable<IEnumerable<int>> result

+0

「ショー」とはどういう意味ですか? –

+0

Console.WriteLine(result [n])のようなものです。 – mdieod

答えて

1
IEnumerable<IEnumerable<int>> resultList= GetCombinations(Enumerable.Range(1, 3), 2); 
foreach (var result in resultList) 
{ 
    foreach(var element in result) 
    { 
     Console.WriteLine(element); 
    }  
} 
2

からすべての要素を表示することができますどのように、です。

IEnumerable<IEnumerable<int>> result = GetCombinations(Enumerable.Range(1, 3), 2); 
foreach (var combination in resultList.SelectMany(x => x)) 
    Console.WriteLine(combination); 

繰り返し処理を行う場合は、パフォーマンス向上のために.ToLost()を追加する必要があります。

IEnumerable<IEnumerable<int>> result = GetCombinations(Enumerable.Range(1, 3), 2).ToList(); 
+0

私は '(x => x)'が感情のように見えるコメントの後になっているように感じます:] – Slai

関連する問題