Как сортировать список по дате?

  • Автор темы Автор темы zhenya777
  • Дата начала Дата начала

zhenya777

Client
Регистрация
21.11.2018
Сообщения
286
Реакции
56
Баллы
28
Здравствуйте! Есть список с датами в формате
17.03.2019
01.01.2001
13.11.2007
23.08.2020
Как правильно сделать сортировку от старой к новой?
 
Здравствуйте! Есть список с датами в формате
17.03.2019
01.01.2001
13.11.2007
23.08.2020
Как правильно сделать сортировку от старой к новой?

не стал сокращать.
C#:
Развернуть Свернуть Копировать
var x = project.Lists["Список 1"]; // имя вашего списка

List<DateTime> y = new List<DateTime>();
for(int i=0; i<x.Count;i++) {
    List<string> spl = x[i].Split(new[] {"."},StringSplitOptions.None).ToList();
    y.Add(new DateTime(int.Parse(spl[2]),int.Parse(spl[1]),int.Parse(spl[0])));
}
y.Sort();
for(int i=0; i<x.Count; i++) {
    x[i] = y[i].ToString("dd.MM.yyyy");   
}
 
А если по красоте, то юзать LINQ.:-)
C#:
Развернуть Свернуть Копировать
var x = project.Lists["Список 1"]; // имя вашего списка

var list = x
    .Select(s => DateTime.ParseExact(s, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture))
    .OrderBy(d => d)
    .Select(d => d.ToString("dd.MM.yyyy"))
    .ToList();

x.Clear();
x.AddRange(list);
 
не стал сокращать.
C#:
Развернуть Свернуть Копировать
var x = project.Lists["Список 1"]; // имя вашего списка

List<DateTime> y = new List<DateTime>();
for(int i=0; i<x.Count;i++) {
    List<string> spl = x[i].Split(new[] {"."},StringSplitOptions.None).ToList();
    y.Add(new DateTime(int.Parse(spl[2]),int.Parse(spl[1]),int.Parse(spl[0])));
}
y.Sort();
for(int i=0; i<x.Count; i++) {
    x[i] = y[i].ToString("dd.MM.yyyy");  
}
То, что нужно! Спасибо!
 
Чтобы не плодить новую тему, спрошу тут ибо тут LINQ затрагивается!
Парни подскажите, что может быть не так? Решил немного упростить код, убрать цикл и воспользоваться LINQ!
Но проджектмейкер выдает ошибку! Пол дня думал, что с кодом что-то не так. Проверил в студии, код работает!

2021-01-23_09-29-44.jpg

Библиотеки вроде все на месте, что ему собаке этой надо нифига понять не могу! :bk:
 
Чтобы не плодить новую тему, спрошу тут ибо тут LINQ затрагивается!
Парни подскажите, что может быть не так? Решил немного упростить код, убрать цикл и воспользоваться LINQ!
Но проджектмейкер выдает ошибку! Пол дня думал, что с кодом что-то не так. Проверил в студии, код работает!

Посмотреть вложение 71150

Библиотеки вроде все на месте, что ему собаке этой надо нифига понять не могу! :bk:
ну раз в студии работает, а тут нет, то на ум приходит версия .net, в зенке она 4.6 в последних версиях.
 
попробовал в постере запустить, чуть от страха на стуле не обделался :D

1611387207025.png

Короче жопа подгорает от незнания что делать то!?
 
и вообще, мне кажется ты не там методы ищешь :-)

хм, странные странности, попробую разобраться! Меня смущает что в студии все нормально, а зенка не переваривает мою коллекцию! Попробую может куда в список перегнать!
Спасибо за советы!
 
хм, странные странности, попробую разобраться! Меня смущает что в студии все нормально, а зенка не переваривает мою коллекцию! Попробую может куда в список перегнать!
Спасибо за советы!
почему странно ? в студии какое окружение настроено ? как в зенке ? или может под .net 5 :)
 
почему странно ? в студии какое окружение настроено ? как в зенке ? или может под .net 5 :-)
к своему стыду я без понятия как посмотреть окружение в зеннопостере, но в студии где работает стоит по умолчанию 3.1

1611389841973.png

P.S хотя там netCore, это видимо поновее
 
к своему стыду я без понятия как посмотреть окружение в зеннопостере, но в студии где работает стоит по умолчанию 3.1

Посмотреть вложение 71155

P.S хотя там netCore, это видимо поновее
стыдится тут нечего, окружение разработчики задают :) мы можем только своими dll расширять текущий функционал. кстати, может у вас что дополнительно в студии подключено из dll ?
 
тыдится тут нечего, окружение разработчики задают :-) мы можем только своими dll расширять текущий функционал. кстати, может у вас что дополнительно в студии подключено из dll ?
спасибо, что помог разобраться, если делать проект на NET Framework то и в студии не работает этот метод! На NetCore всё нормально!
 
спасибо, что помог разобраться, если делать проект на NET Framework то и в студии не работает этот метод! На NetCore всё нормально!
ну да... netCore это левал ап для зенки будет :)
 
А если по красоте, то юзать LINQ.:-)
C#:
Развернуть Свернуть Копировать
var x = project.Lists["Список 1"]; // имя вашего списка

var list = x
    .Select(s => DateTime.ParseExact(s, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture))
    .OrderBy(d => d)
    .Select(d => d.ToString("dd.MM.yyyy"))
    .ToList();

x.Clear();
x.AddRange(list);
Партни, помогите, пожалуйста, этот код адаптировать, чтобы сортировать, такой список, "datetime":"21.09.2021",
C#:
Развернуть Свернуть Копировать
{"title":"1 серия","file":"https://www.ntv.ru/video/embed/2057540/?og","descr":"","datetime":"11.11.2021","announce":"no","ostring":""},
{"title":"2 серия","file":"https://www.ntv.ru/video/embed/2057346/?og","descr":"","datetime":"10.11.2021","announce":"no","ostring":""},
{"title":"3 серия","file":"https://www.ntv.ru/video/embed/2057008/?og","descr":"","datetime":"09.11.2021","announce":"no","ostring":""},
{"title":"4 серия","file":"https://www.ntv.ru/video/embed/2056582/?og","descr":"","datetime":"08.11.2021","announce":"no","ostring":""},
{"title":"5 серия","file":"https://www.ntv.ru/video/embed/2055281/?og","descr":"","datetime":"03.11.2021","announce":"no","ostring":""},
{"title":"6 серия","file":"https://www.ntv.ru/video/embed/2055080/?og","descr":"","datetime":"02.11.2021","announce":"no","ostring":""},
{"title":"7 серия","file":"https://www.ntv.ru/video/embed/2054781/?og","descr":"","datetime":"01.11.2021","announce":"no","ostring":""},
{"title":"8 серия","file":"https://www.ntv.ru/video/embed/2053685/?og","descr":"","datetime":"28.10.2021","announce":"no","ostring":""},
{"title":"9 серия","file":"https://www.ntv.ru/video/embed/2053389/?og","descr":"","datetime":"27.10.2021","announce":"no","ostring":""},
{"title":"10 серия","file":"https://www.ntv.ru/video/embed/2053060/?og","descr":"","datetime":"26.10.2021","announce":"no","ostring":""},
{"title":"11 серия","file":"https://www.ntv.ru/video/embed/2052740/?og","descr":"","datetime":"25.10.2021","announce":"no","ostring":""},
{"title":"12 серия","file":"https://www.ntv.ru/video/embed/2051590/?og","descr":"","datetime":"21.10.2021","announce":"no","ostring":""},
{"title":"13 серия","file":"https://www.ntv.ru/video/embed/2051340/?og","descr":"","datetime":"20.10.2021","announce":"no","ostring":""},
{"title":"14 серия","file":"https://www.ntv.ru/video/embed/2051062/?og","descr":"","datetime":"19.10.2021","announce":"no","ostring":""},
{"title":"15 серия","file":"https://www.ntv.ru/video/embed/2050461/?og","descr":"","datetime":"18.10.2021","announce":"no","ostring":""},
{"title":"16 серия","file":"https://www.ntv.ru/video/embed/2049560/?og","descr":"","datetime":"14.10.2021","announce":"no","ostring":""},
{"title":"17 серия","file":"https://www.ntv.ru/video/embed/2049262/?og","descr":"","datetime":"13.10.2021","announce":"no","ostring":""},
{"title":"18 серия","file":"https://www.ntv.ru/video/embed/2049161/?og","descr":"","datetime":"12.10.2021","announce":"no","ostring":""},
{"title":"19 серия","file":"https://www.ntv.ru/video/embed/2048543/?og","descr":"","datetime":"11.10.2021","announce":"no","ostring":""},
{"title":"20 серия","file":"https://www.ntv.ru/video/embed/2047720/?og","descr":"","datetime":"07.10.2021","announce":"no","ostring":""},
{"title":"21 серия","file":"https://www.ntv.ru/video/embed/2047460/?og","descr":"","datetime":"06.10.2021","announce":"no","ostring":""},
{"title":"22 серия","file":"https://www.ntv.ru/video/embed/2047180/?og","descr":"","datetime":"05.10.2021","announce":"no","ostring":""},
{"title":"23 серия","file":"https://www.ntv.ru/video/embed/2046543/?og","descr":"","datetime":"04.10.2021","announce":"no","ostring":""},
{"title":"24 серия","file":"https://www.ntv.ru/video/embed/2045840/?og","descr":"","datetime":"30.09.2021","announce":"no","ostring":""},
{"title":"25 серия","file":"https://www.ntv.ru/video/embed/2045614/?og","descr":"","datetime":"29.09.2021","announce":"no","ostring":""},
{"title":"26 серия","file":"https://www.ntv.ru/video/embed/2045382/?og","descr":"","datetime":"28.09.2021","announce":"no","ostring":""},
{"title":"27 серия","file":"https://www.ntv.ru/video/embed/2045160/?og","descr":"","datetime":"27.09.2021","announce":"no","ostring":""},
{"title":"28 серия","file":"https://www.ntv.ru/video/embed/2044161/?og","descr":"","datetime":"23.09.2021","announce":"no","ostring":""},
{"title":"29 серия","file":"https://www.ntv.ru/video/embed/2043983/?og","descr":"","datetime":"22.09.2021","announce":"no","ostring":""},
{"title":"30 серия","file":"https://www.ntv.ru/video/embed/2043702/?og","descr":"","datetime":"21.09.2021","announce":"no","ostring":""},
{"title":"31 серия","file":"https://www.ntv.ru/video/embed/2043042/?og","descr":"","datetime":"20.09.2021","announce":"no","ostring":""},
{"title":"32 серия","file":"https://www.ntv.ru/video/embed/2042307/?og","descr":"","datetime":"16.09.2021","announce":"no","ostring":""},
{"title":"33 серия","file":"https://www.ntv.ru/video/embed/2041988/?og","descr":"","datetime":"15.09.2021","announce":"no","ostring":""},
 

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