C# ile string dizisini elemanların uzunluğuna göre sıralama için aşağıdaki kod kullanılabilir;
private IList<string> SortStringLength(IList<string> arrString) { string[] tmpString = arrString.ToArray<string>(); Array.Sort(tmpString, new Comparison<string>(delegate(string str1, string str2) { if (str1 == null && str2 == null) return 0; ///iki değişkende null else if (str1 == null) return -1; ///birinci değişken null else if (str2 == null) return 1; ///ikinci değişken null else { if (str1.Length < str2.Length) return -1; ///birinci değişken daha kısa else if (str1.Length > str2.Length) return 1; ///ikinci değişken daha kısa else return str1.CompareTo(str2); ///iki değişken aynı uzunlukta, alfabetik sıralama yapılıyor } }));
return tmpString; }</pre>
string[] OrnekDizi = { "333", null, "1", "22", "12", "4444" };
OrnekDizi = (string[])SortStringLength(OrnekDizi);
foreach (string s in OrnekDizi)
Console.WriteLine(s);
// Console Çıktısı:
// [null]
// 1
// 12
// 22
// 333
// 4444
Bu kodu kullanarak sıraladığınız string dizisinde, elemanlar önce uzunluklarına göre sıralanacaktır. Aynı uzunlukta olan elemanlar ise alfabetik dizilime göre sıralanacaktır.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484