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