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;
}
}
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{ "12", "1", null, "2314", "55555", "123", "222" }; foreach (var Rakam in Rakamlar.Sirala()) { Console.WriteLine(Rakam); }
Sonuç;
[null] 1 12 123 222 2314 55555


