как сортировать в список

Dome4ta1

Client
Регистрация
12.08.2017
Сообщения
89
Благодарностей
15
Баллы
8
Добрый день всем,


вопрос такой как можно отсортировать список из зенки.
формат такой имя - (время, время)
надо отсортировать по возрастанию чтоб сперва был
имя - (2 ч, 10 мин 43 мин)
имя - (1ч, 55 мин, 43 мин)
имя - (1 ч, 25 мин, 30 мин)

буду благодарен если сможете помочь


104085
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113
вот что думает на этот счет AI

В C# можно использовать метод List.Sort и передать в него компаратор для сравнения элементов списка. Компаратор должен сравнивать элементы по времени в порядке возрастания.

Вот пример кода:

csharpCopy code
using System;
using System.Collections.Generic;

class Program
{
static void Main(string[] args)
{
List<string> zenki = new List<string>
{
"имя1 - (2 ч, 10 мин, 43 мин)",
"имя2 - (1 ч, 55 мин, 43 мин)",
"имя3 - (1 ч, 25 мин, 30 мин)"
};

zenki.Sort((s1, s2) =>
{
// Извлекаем время из строк s1 и s2
TimeSpan t1 = ExtractTime(s1);
TimeSpan t2 = ExtractTime(s2);

// Сравниваем времена
return t1.CompareTo(t2);
});

// Выводим отсортированный список
foreach (string s in zenki)
{
Console.WriteLine(s);
}
}

static TimeSpan ExtractTime(string s)
{
// Извлекаем время из строки
int h = 0, m1 = 0, m2 = 0;
int pos = s.IndexOf('(') + 1;
int len = s.IndexOf(')') - pos;
string[] parts = s.Substring(pos, len).Split(',');
foreach (string part in parts)
{
string[] subparts = part.Trim().Split(' ');
int value = int.Parse(subparts[0]);
if (subparts[1] == "ч")
{
h = value;
}
else if (subparts[1] == "мин")
{
m1 = value;
}
else if (subparts[1] == "с")
{
m2 = value;
}
}

// Преобразуем время в TimeSpan
return new TimeSpan(h, m1, m2);
}
}

В этом примере мы используем лямбда-выражение для создания компаратора, который сравнивает элементы списка по времени, извлеченному из строк элементов с помощью метода ExtractTime. Этот метод извлекает часы, минуты и секунды из строки и преобразует их в объект TimeSpan.
 
  • Спасибо
Реакции: Dome4ta1

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