Bu yazımda projelerimde  çok işime yarayan bir LINQ sorgusundan bahsetmek istiyorum.Bir veri kaynağından o kaynaktaki son n tane kaydı çeken bir sorgu yazacağız.Dilerseniz bir Console uygulaması oluşturup örneğimize başlayalım.Örneğimizde bir önceki linq makalemdeki gibi Person tipinde nesneleri barındıran generic list ile çalışacağız.ID ve Name propertylerini içeren Person sınıfını projemize ekleyelim.Daha sonra ana fonksiyonda listeye ekleme yapalım.

static void Main(string[] args)

{

     List<Person> people = new List<Person>        

   {          

        new Person{ID=1,Name="Betül"},

        new Person{ID=3,Name="Ayşe"}, 

        new Person{ID=5,Name="Ahmet"},   

        new Person{ID=2,Name="Selim"}, 

        new Person{ID=4,Name="Kübra"}  

      };  

          GetLastN(people,3);

 }

Şimdi son n tane kaydı getiren linq sorgumuzu  sonucu ekrana yazdıran bir metod içinde yapalım.Metodumuz parametre olarak listeyi ve en son getirelecek kayıt sayısını alır.

public static void GetLastN(List<Person> people,int n)   

  {

             IEnumerable<Person> lastN = (from p in people    

                                                          select p).OrderByDescending(c => c.ID).Take(n); 

             foreach (Person person in lastN)         

             {

                  Console.WriteLine(person.Name);           

              }

 }

Metodumuzun işleme mantığı kendisine parametre olarak gelen listedeki kayıtları önce azalarak sıralar ve sonra Take(int n) fonksiyonu ile ilk n kaydı alır.Daha sonra kontrol amaçlı olarak foreach ile aldığımız ilk  n kaydı ekrana basıyoruz

Teşekkürler.

About the Author