LINQ

2016-10-27 25 views
6

Ben yapıya sahip küresel endeks olsun?LINQ

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

Yani çıkan elemanın birinci özelliği taban elemanının küresel endeksi temsil etmeli ve ikinci bir unsuru ait olan grubun ait indeksini temsil etmelidir.

Örnek: 3. grup 2. elemanı {8,3} olarak öngörülen olacak:

8 - temel elemanın genel endeksi

3 - grup temel elemanın göstergesi aittir.

+4

Bir örnek verin, bu durumda ne beklediğinizin çok net olmadığını düşünüyorum –

+0

Sanırım anladım. Buna göre sıralanan tüm dizin çiftlerinin listesini istiyorsunuz. Doğru mu? –

+0

Bir soruyu biraz düzenledim. – Sic

cevap

4

Bunu, dizini içeren Select ve SelectMany sürümlerini kullanarak yapabilirsiniz.

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) + "}"))); 

Çıkışlar

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

+0

@HimBromBeere Evet, düzeltildi. – juharr

+0

Teşekkürler. İstediğim gibi çalışıyor – Sic