C# String Dizisini String Uzunluğuna Göre Sıralamak

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


İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı