Giriş
Eşit uzunlukta iki veriyapısını beraber dolaşabilmemizi sağlar.
Örnek
Elimizde iki tane liste olsun.
Aynı listeyi zip'leyerek dolaşmak yani ikişer ikişer dolaşmak için şöyle yaparız. Önce iki liste oluştururuz.
Eşit uzunlukta iki veriyapısını beraber dolaşabilmemizi sağlar.
Örnek
Elimizde iki tane liste olsun.
List<int> list_ID = ...;
List<string> list_Position = ...;
İki listeyi birleştirip pozisyonu "B" olanları seçerek ilk id alanını almak için şöyle yaparız.int? id = list_Position.Zip (list_ID, (x, y) => new { pos = x, id = y })
.Where(x => x.pos == "B")
.Select(x => x.id)
.FirstOrDefault();
ÖrnekAynı listeyi zip'leyerek dolaşmak yani ikişer ikişer dolaşmak için şöyle yaparız. Önce iki liste oluştururuz.
var items = "1,1,1,5,5,4,4,1,1,1,3,3,3,3,3".Split(',');
var itemsIndexed = items.Select((n, idx) => (Value: n, Index: idx));
Daha sonra şöyle yaparız.var result = itemsIndexed
.Zip(itemsIndexed.Skip(1), (l, r) => (Left: l, Right: r))
.Where(i => i.Left.Value != i.Right.Value)
.Select(i => i.Right.Index);
Hiç yorum yok:
Yorum Gönder