C# Linq Kullanimi

csharp
  • Turgay Can
  • Tarih

    15 Apr, 2012
  • Yorum

    0
  • Görüntüleme

    2085
  • İndirme

    0

C# Linq Kullanimi

Linq Kullanımı
Linq özellikle listelerde belirli kriterlere göre sorgulama, sıralama ve gruplama gibi işlemlerde işimize yarıyor. SQL dilinin kolaylıklarının sayfaların codebehind kısmına taşınması gibi de düşünülebilir. Uzun kodlar gerektiren bazı durumlarda(gruplama vs.) Linq işimize yarayacaktır.

Aşağıdaki örnekteki gibi öğrenci sınıfımız olsun. Bu öğrenci sınıfına rastgele öğrenciler ekleyerek ortalamalarına göre sıralayalım. Normalde bu işlemi daha uzun ve karmaşık şekilde kod yazarak da yapabiliriz fakat Linq ile ne kadar basite indirgeyebildiğimizi görelim.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LinqOrnek
{
    class Program
    {
        public class Ogrenci
        {
            public kisilikBilgileri kisilikBilgileri = new kisilikBilgileri();
            public dersNotlari dersNotlari = new dersNotlari();
        }

        public class dersNotlari
        {
            public List<decimal> notlar = new List<decimal>();
        }

        public class kisilikBilgileri
        {
            public string adi;
            public string soyadi;
            public string tcKimlikNo;
        }

        static void Main(string[] args)
        {
            List<ogrenci> ogrenciler = new List<ogrenci>();

            //ogrenciler listemize rastgele iki öğrenci tanımlayalım

            Ogrenci ogrenci = new Ogrenci();
            ogrenci.kisilikBilgileri.adi = "Ali";
            ogrenci.kisilikBilgileri.soyadi = "Bal";
            ogrenci.kisilikBilgileri.tcKimlikNo = "40055588899";
            ogrenci.dersNotlari.notlar = new List<decimal> { 52, 65, 75 };
            ogrenciler.Add(ogrenci);

            Ogrenci ogrenci2 = new Ogrenci();
            ogrenci2.kisilikBilgileri.adi = "Emel";
            ogrenci2.kisilikBilgileri.soyadi = "Kaya";
            ogrenci2.kisilikBilgileri.tcKimlikNo = "9998888777";
            ogrenci2.dersNotlari.notlar = new List<decimal> { 95, 82, 100 };
            ogrenciler.Add(ogrenci2);

            //şimdi de linq ile öğrencilerin ortalamalarını ve isimlerini listeleyelim

                var ogrenciBilgileri = from ogrenciKaydi in ogrenciler
                                       orderby ogrenciKaydi.dersNotlari.notlar.Average() descending 
``//ascending kullanılırsa tam tersi şekilde sıralar
                                       select new
                                       {
                                           OgrenciAdi = ogrenciKaydi.kisilikBilgileri.adi,
                                           OgrenciSoyadi = ogrenciKaydi.kisilikBilgileri.soyadi,
                                           OgrenciTcKimlik = ogrenciKaydi.kisilikBilgileri.tcKimlikNo,
                                           OgrenciNotOrtalamasi = ogrenciKaydi.dersNotlari.notlar.Average() 
``// ortalama almamızı sağlayan metodumuz
                                       };

            //şimdi de öğrencilerimizi listeleyelim

            foreach (var ogrenciKaydi in ogrenciBilgileri)
            {
                Console.WriteLine("Ogrenci Adi: {0}", ogrenciKaydi.OgrenciAdi);
                Console.WriteLine("Ogrenci Soyadi: {0}", ogrenciKaydi.OgrenciSoyadi);
                Console.WriteLine("Ogrenci Tc Kimlik No: {0}", ogrenciKaydi.OgrenciTcKimlik);
                Console.WriteLine("Ogrenci Not Ortalamasi: {0}", ogrenciKaydi.OgrenciNotOrtalamasi);
                Console.WriteLine("---------------------------");
            }

        }
    }
}

0 Yorum..

Yorum yapmak için "Giriş yapın" yada "Misafir üye" olarak yorum yapabilirsiniz.

Yorum Yap