İlk yazıda kullandığımız IndexOf metodu yerine aynı sorunu LINQ sorguları ile çözmeye çalışacağız. Öncelikle LINQ mimarisine bakarsak, üzerinde çalıştığımız çeşitli arayüzler içeren veri kümelerinde ve veri kaynaklarında(XML, JSON vs.) sorgulama yapmamızı sağlayan ifadelerdir. Aslında LINQ yapısı programlama diline, sorgulama becerisi ekler, sorgulama ve sonuç kümesi döndürme gibi işlemleri ise sağlayıcı(provider) dediğimiz yapılar gerçekleştirir. Bu sorun için LINQ yapısının veri kümeleri üzerinde sorgulama yapmamıza imkan veren ifadeler olduğunu bilmemiz yeterli. Yazıda bir metin içinde aranan kelimeyi LINQ to Objects sağlayıcısının bize sunduğu Count metodunu kullanarak bulmaya çalışacağız.
string metin, aranan; char[] noktalama= { ',', '!', '#', '$', '%', '&', '(', ')', '*', '+', '-', /*'.',*/ '/', ':', ';', '<', '=', '>', '?', '@', '[', '/', ']', '^', '{', '|', '}', ' ' }; Console.WriteLine("Metni giriniz: "); metin = Console.ReadLine().ToString(); Console.WriteLine("Aranan kelimeyi giriniz: "); aranan = Console.ReadLine().ToString(); string[] kelimeler = metin.Split(noktalama); int adet = kelimeler.Count(kelime => kelime == aranan); Console.WriteLine(aranan + " kelimesi " + adet + " adet bulunmustur."); Console.ReadLine();