Linq ile bir diziye satır numarası atama

Mart 27, 2011 at 2:48 am Yorum bırakın


.Net framework 3 ve sonrası ile hayatımıza giren Linq sorguları oldukça fayda sağlamakta. Benim için satıriçi yazılan metodları -delegate, Action, lambda func vb- anlamak çok kolay olmasa da biraz kafa yorunca neler çıktığına şaşırmamak elde değil.

Bir iş üzerinde uğraşırken basit bir dizi üzerinde aradığım elemanın satır sayısını ya da dizi indexini elde etmem gerekti. eski usül bunu herhalde şöyle yapardım:

int bulunanIndex =-1;

for(int i=0;i<dizi.Lenght;i++)
if(dizi[i]==aranan)
bulunanIndex=i;

Bu çözüm gayet güzel ve basittir ama yanlızca o indexi bulmanıza yarar, daha fazlası değil.

Aşağıdaki linq metodu ile diziden indexlenmiş bir dizi elde etmiş oluruz.

for(int i=0;i{Eleman=eleman,Index=id});

Burda eleman dizinin bir elemanı, id ise Select metodu içinde dahili olarak kullanılan döngünün indexeri. Biz burdan Eleman ve Index propertylerine sahip bir sınıf elde ediyoruz. Ve daha sonra bu sınıfı indexi üzerinde sorgu yapabileceğimiz bir Linq sorgusunda rahat rahat kullanabiliyoruz.

var sonuc = from x in indexlenmisDizi
where x.Eleman.Contains(” “) && Index>23
select x;

Kolaylıklar, güzellikler…

Reklamlar

Entry filed under: Genel. Tags: , , , , , .

Ticaret anlayışımızın yozlaşması Ziyaretçi sayısını arttırmak

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Takvim

Mart 2011
P S Ç P C C P
« Oca   Nis »
 123456
78910111213
14151617181920
21222324252627
28293031  

İstatistik

  • 42,565 sayfa görüntüleme

%d blogcu bunu beğendi: