Geliştirdiğimiz projelerde ekrana listeleyeceğimiz dizileri harf uzunluklarına göre sıralamak isteyebiliriz.
Bu makale ile, IEnumerable<string> tipinden değişkenlere bu özelliği nasıl ekleyeceğimizi göreceğiz.
Öncelikle Extension Method‘umuzu static bir sınıf içerisine (ExtensionManager) yazmamız lazım;
public static class ExtensionManager { public static IEnumerable<string> Sirala(this IEnumerable<string> Liste) { string[] strArray = Liste.ToArray<string>(); Array.Sort(strArray, new Comparison<string>(delegate(string Kelime1, string Kelime2) { if (Kelime1 == null && Kelime2 == null) { return 0; } else if (Kelime1 == null) { return -1; } else if (Kelime2 == null) { return 1; } else { if (Kelime1.Length < Kelime2.Length) return -1; else if (Kelime1.Length > Kelime2.Length) return 1; else return Kelime1.CompareTo(Kelime2); } }));
return strArray;
} }</pre>
Yukarıdaki kod’da Array sınıfının static Sort method’unu çağırıyoruz. Karşılaştırma koşulunu, ikinci parametre’de delegate method olarak yazıyoruz.
Kullanımı;
var Rakamlar = new List<string> { "12", "1", null, "2314", "55555", "123", "222" }; foreach (var Rakam in Rakamlar.Sirala()) { Console.WriteLine(Rakam); }
Sonuç;
[null] 1 12 123 222 2314 55555
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484