Linq Lookup

Aşağıdaki gibi iki adet kelime dizisi olduğunu varsayalım.

Amacımız ortak kelimeleri bulmak.

Lookup extension metodu sonuç olarak Dictionary döndürür.
Şunun gibi;

Benzer elemanlar True olarak işaretlenenler.

kaynak: Msdn

Linq İle Pivot

Pivot şeklinde veri çıktısı almanın sql ile çokta pratik olmadığını yaşayarak öğrendik. Taaaaaki LINQ‘ in .Net Framework’ e entegre olana kadar. Bu sorgulama tekniği sayesinde eskiden daha uzun uğraşlar sonrası elde ettiklerimize daha kolay ulaşır olduk.

Linq;
Açılımı => Language Integrated Query
Okunuşu => link

Bu yazıda ise  Group by yardımı ile Pivot görünümlü veri çıktısı nasıl alınır ona değineceğim.

Tablo Yapısı

Veri yapımız diagramda görüldüğü gibi. Yazılar ve Kategoriler adlı iki adet ana tablo ve bunları bağlayan bir adet yardımcı tablo.
Diagram

Group By

Group by, select sorgularında  sayısal fonksiyonların gösteriminde kullanılan oldukça faydalı bir anahtar sözcüktür. Basit bir örnek ile anlatmak gerekir ise; Hangi kategoriden kaçar adet yazı girilmiş listelemek istersek Count fonksiyonunu kullanmak gerekir. Sadece Count kullanmak yeterli olmayacaktır bize kategori adı da lazım. Sebebi ise Count sadece tek bir satır ve sütun döndürür ama kategori adı ise bir yada birden fazla. Sistem bu durumda karasız kalacağı için hata verecek ve group by kullanamızı isteyecek. Yani;

Pivot

Yukarıdaki örneği biraz ileriye götürelim. Kategori bazında 2010 yılında aylık kaç adet yazı yayınlanmış ay ay listeyelelim. Bu da pivota açılan kapı.

Sonuç;
Table