Bir sorgudan çoğu kez elemanları belli bir sırada vermesi istenir. Bunun için
orderby cümleciği kullanılır.
orderby, aksi belirtilmedikçe sıralamayı küçükten büyüğe doğru yani artan şekilde verir.
Kullanılan sınıfın;
public class Ogrenci
{
public string Adi { get; set; }
public string Soyadi { get; set; }
public int No { get; set; }
public List<int> Yazililar;
}
olduğunu, kullanılan listenin de;
List<Ogrenci> ogrenciler = new List<Ogrenci>
{
new Ogrenci {Adi="Kenan", Soyadi="Oran", No=111, Yazililar = new List<int> {97, 72, 60}},
new Ogrenci {Adi="Erhan", Soyadi="Erkanlı", No=112, Yazililar = new List<int> {75, 84, 39}},
new Ogrenci {Adi="Tekin", Soyadi="Uğurlu", No=113, Yazililar = new List<int> {99, 89, 95}},
new Ogrenci {Adi="Mehmet", Soyadi="Emre", No=114, Yazililar = new List<int> {72, 81, 84}},
new Ogrenci {Adi="Ercan", Soyadi="Orak", No=115, Yazililar = new List<int> {97, 89, 82}},
};
olduğunu varsayarak aşağıdaki örneği inceleyin.
var query = from ogrenci in ogrenciler
where ogr.Yazililar[0] >= 55
orderby ogr.Yazililar[0]
select ogr;
/*
// LINQ Yöntem Sözdizimi ile sorgu :
var query = ogrenciler.Where(ogr => ogr.Yazililar[0] >= 55)
.OrderBy(ogr => ogr.Yazililar[0]);
*/
Bu örnek, 1. yazılı sınav notu 55 ve daha büyük olan öğrencileri 1. sınav notlarına göre artan sırada (küçükten büyüğe) seçer.
Eğer tersine bir sıralama isteniyorsa
descending ifadesi cümleciğin sonuna eklenir.
var query = from ogrenci in ogrenciler
where ogr.Yazililar[0] >= 55
orderby ogr.Yazililar[0] descending
select ogr;
/*
// LINQ Yöntem Sözdizimi ile sorgu :
var query = ogrenciler.Where(ogr => ogr.Yazililar[0] >= 55)
.OrderByDescending(ogr => ogr.Yazililar[0]);
*/
Bu örnek ise aynı listeden, 1. yazılı sınav notu 55 ve daha büyük olan öğrencileri 1. sınav notlarına göre azalan sırada (büyükten küçüğe) seçer.