Сортировка строк по алфавиту по концовке
Столкнулся я с такой проблемой: Есть текстовой документ, в нем для примера 8 строк:
test4:ac
test6:at
test2:ab
test8:aq
test7:au
test1:ah
test3:ap
test5:as
Что-то похожее здесь написано но немного не то что надо было бы иметь в результате https://www.cyberforum.ru/csharp-beginners/thread2225545.html
Как получить такой вывод, но уже в другом result.txt
test2:ab
test4:ac
test1:ah
test3:ap
test8:aq
test5:as
test6:at
test7:au
Но в коде нужно прописать типа Substring посл. 2 символа с конца
Ответы (1 шт):
Автор решения: KuzCode
→ Ссылка
var lines = File.ReadAllLines("path/name1.txt"); // считать строки из файла
var sortedLines = lines.OrderBy(x => x.Split(':').Last()); // просортировать по концовке
File.WriteAllText("path/name2.txt", sortedLines); // записать в новый файл
Если строго следовать постановке задачи: "последние 2 символа с конца", то решение может быть таким:
lines.OrderBy(x => x[^2..])
Тут используются Индексы и диапазоны:
^2.. - означает диапазон от двух символов с конца и до конца.