Мне нужно отсортировать массив строк. Как я могу это сделать, если:Как отсортировать строки в C#
- Они должны быть размещены в порядке длины строки.
- Если длины равны, их необходимо поместить в алфавитном порядке.
Есть ли какие-либо простые меры?
Мне нужно отсортировать массив строк. Как я могу это сделать, если:Как отсортировать строки в C#
Есть ли какие-либо простые меры?
Вот традиционный способ в C# ...
static void Main(string[] args)
{
List<string> list = new List<string>();
list.Add("1991728819928891");
list.Add("0991728819928891");
list.Add("3991728819928891");
list.Add("2991728819928891");
list.Add("Hello");
list.Add("World");
list.Add("StackOverflow");
list.Sort(
delegate (string a, string b) {
int result = a.Length.CompareTo(b.Length);
if (result == 0)
result = a.CompareTo(b);
return result;
}
);
Console.WriteLine(string.Join("\n", list.ToArray()));
}
Пример вывода:
Hello
World
StackOverflow
0991728819928891
1991728819928891
2991728819928891
3991728819928891
Вы можете сделать это с помощью LINQ следующим образом:
string[] arr = new[] { "aa", "b", "a" , "c", "ac" };
var res = arr.OrderBy(x => x.Length).ThenBy(x => x).ToArray();
Другой способ заключается в использовании Array.Sort
с реализацией пользовательских IComparer
.
Какой код у вас до сих пор? – Amy
Ну, вы можете называть 'Array.Sort' и передавать' IComparer' или 'Сравнение ' ... или вы можете использовать LINQ ... вы еще что-нибудь пробовали? Что случилось? –
взгляните на это http://www.dotnetperls.com/sort – user990423