17 Aralık 2017 Pazar

Linq Element Metodları

Giriş
Element metodları dizideki tek bir elemana erişmek imkanı tanırlar.

ElementAt
Dizinin sıralı olması gerekir.
var person = db.Person.OrderBy(p => p.Id).ElementAt(1);
Eğer sıralama işlemi yapmak istemiyorsak şöyle yapabiliriz.
var person = db.Person.OrderBy(p => p.Id).Skip(1).FirstOrDefault();
ya da şöyle yapabiliriz.
var person = db.Person.OrderBy(p => p.Id).Skip(1).Take(1).AsEnumerable().First();
ElementAtOrDefault
Örnek ver
First
Metodun için şöyle
public static TSource First<TSource>(this IEnumerable<TSource> source) {
  if (source == null) throw Error.ArgumentNull("source");
  IList<TSource> list = source as IList<TSource>;
  if (list != null) {
    if (list.Count > 0) return list[0];
  }
  else {
    using (IEnumerator<TSource> e = source.GetEnumerator()) {
      if (e.MoveNext()) return e.Current;
    }
  }
  throw Error.NoElements();
}
Girdi olarak verilen IEnumerable using ile kullanıldığı için ilk eleman alındıktan sonra kapatılır.

FirstOrDefault
Örnek ver
Last
Örnek ver
LastOrDefault
Örnek ver
Single
Tek eleman yoksa exception fırlatır.

SingleOrDefault
Örnek ver


Hiç yorum yok:

Yorum Gönder