Önceki örnekte bir ArrayList içerisinde yer alan tamsayıları nasıl artan sırada sıralayabileceğimize istinaden bir uygulama yapmıştım. Bu sefer de ArrayList.Sırt() metodu ile nasıl azalan sırada sıralama yapabileceğimize dair bir soru çözelim.
Örnek: 1, 8, 3, 8, 2, 4 sayılarından oluşan bir ArrayList tanımlayın ve bu ArrayList'in içindeki sayıları büyükten küçüğe azala sırada sıralayın.
var al = new ArrayList();
al.Add(1);
al.Add(8);
al.Add(3);
al.Add(8);
al.Add(2);
al.Add(4);
//sıralanmadan önce
foreach (int eleman in al) {
Console.Write(eleman + " ");
}
System.Console.WriteLine("");
//sırala
al.Sort(); // artan sırada sırala
al.Reverse(); // diziyi tersten sırala
//sıralandıktan sonra
foreach (int eleman in al) {
Console.Write(eleman + " ");
}
Açıklama: ArrayList.Sort() metodunu azalan sırada uygulayabilmek için bir overload bulunmuyor. Bu yüzden çözüm olarak ArrayList artan sırada sıralanmış ve sonrasında Reverse() metodu ile tersten sıralanmıştır.
Çıktı:
1 8 3 8 2 4
8 8 4 3 2 1
Önceki yazılarımdan bazıları için;
bkz: C# ArrayList elemanlarını küçükten büyüğe sıralamak
bkz: C# ArrayList ile elemanın index'ini bulmak
bkz: C# ile iç içe foreach döngüsü kullanımı ve örnekleri
bkz: C# Dizi Elemanlarının Toplamı Nasıl Bulunur?
bkz: C# Dizi Elemanlarının Kaç Kere Tekrarlandığını Bulmak
bkz: Programlama dillerinde diziler (array) ne işe yararlar?