Как правильно сортировать список по возрастанию

TopFlow

Client
Регистрация
24.06.2020
Сообщения
59
Благодарностей
12
Баллы
8
Добрый день

Нужно отсортировать список по возрастанию что бы треки шли по порядку 1. - 2. - 3.- и тд
 

Вложения

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 991
Благодарностей
4 457
Баллы
113
В цикле разбить регуляркой на 2 или 3 столбца. Добавить в таблицу. Отсортировать. Соединить обратно в список.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
482
Благодарностей
180
Баллы
43
Добрый день

Нужно отсортировать список по возрастанию что бы треки шли по порядку 1. - 2. - 3.- и тд
C#:
string path = @"tracks.txt";//Свой путь

var lines = System.IO.File.ReadLines(path);   

List<string> myracks = lines.OrderBy(line => line).ToList();   

foreach(var t in myracks)
{
   project.SendInfoToLog(t);
}
Попробуйте так
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 562
Благодарностей
9 177
Баллы
113
Добрый день

Нужно отсортировать список по возрастанию что бы треки шли по порядку 1. - 2. - 3.- и тд
Вот тут обсуждалось, с методами решения:
 

TopFlow

Client
Регистрация
24.06.2020
Сообщения
59
Благодарностей
12
Баллы
8
C#:
string path = @"tracks.txt";//Свой путь

var lines = System.IO.File.ReadLines(path);  

List<string> myracks = lines.OrderBy(line => line).ToList();  

foreach(var t in myracks)
{
   project.SendInfoToLog(t);
}
Попробуйте так
Спасибо! А если список не из файла а созданный в проекте (tracks) ? как прописать
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
482
Благодарностей
180
Баллы
43
Спасибо! А если список не из файла а созданный в проекте (tracks) ? как прописать
C#:
List<string>  tracks = new List<string>();
tracks.Add("5");
tracks.Add("3");
tracks.Add("2");

List<string> newtracks = tracks.OrderBy(line => line).ToList(); 

foreach(var t in newtracks)
{
   project.SendInfoToLog(t);
}
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
773
Благодарностей
517
Баллы
93
C#:
List<string>  tracks = new List<string>();
tracks.Add("5");
tracks.Add("3");
tracks.Add("2");

List<string> newtracks = tracks.OrderBy(line => line).ToList();

foreach(var t in newtracks)
{
   project.SendInfoToLog(t);
}
Такая сортировка не решит проблему, чтобы нормально отсортировать числа, нужна их преобразовать из типа string в тип int(или другой числовой тип)

Такая сортировка будет лучше работать, sergodjan66 скинул хорошие примеры.
C#:
List<string> tracks = new List<string>();
tracks.Add("track\\3. - Bla bla");
tracks.Add("track\\1. - Bla bla");
tracks.Add("track\\10. - Bla bla");
tracks.Add("track\\2. - Bla bla");
tracks.Add("track\\25. - Bla bla");


List<string> newtracks = tracks.OrderBy(track => int.Parse(Regex.Match(track, @"(?<=track\\).*?(\d+)").Value)).ToList();

foreach (var t in newtracks)
{
    project.SendInfoToLog(t);
}
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)