2016-10-27 9 views
6

を取得しますか?LINQは私が構造を持っているグローバルインデックス

{1,1},{2,1},{3,2},{4,2},{5,2},{6,2},{7,3},{8,3},{9,3}

そこで得られた要素の最初のプロパティは、ベース要素のグローバルインデックスを表しなければならない2つ目は、その要素が属しているグループのインデックスを表しなければなりません。

例:第3群の第2の要素は{8,3}に投影される。

8 - ベースエレメントのグローバルインデックス

3 - 基基本要素のインデックスが属します。

+4

例を挙げてください。この場合、あなたが何を期待しているかはあまり明確ではありません。 –

+0

私はそれを得ると思います。それに応じて注文されたすべてのインデックスペアのリストが必要です。 –

+0

私は少し質問を編集しました。 – Sic

答えて

4

インデックスを含むSelectSelectManyのバージョンを使用すると、これを実行できます。

IList<IList<int>> structure = new[] 
{ 
    new[] { 1, 1 }, 
    new[] { 1, 1, 1, 1 }, 
    new[] { 1, 1, 1 } 
}; 

var result = structure.SelectMany((l, i) => l.Select(v => i)) 
    .Select((i, j) => new[] {j + 1, i + 1}); 

Console.WriteLine(string.Join(",", result.Select(l => "{" + string.Join(",", l) + "}"))); 

出力

{1,1}、{2,1}、{3,2}、{4,2}、{5,2}、{6,2}、 {7,3}、{8,3}、{9,3}

+0

@HimBromBeereうん、固定。 – juharr

+0

ありがとうございます。それは私が望むように働く – Sic

関連する問題