abdul subhan mohammed Ответов: 2

Как заполнить список двумя столбцами в C#


Привет Ребята,

У меня есть данные в базе данных SQL SERVER, я извлекаю данные в строковом формате.

данные выглядят так: "08:00,11:00/11:00,13:00/13:00,16:00|"

если мы видим, то строка разделена запятой и трубой.
значения, разделенные запятыми, являются начальными и конечными временными интервалами, где значения, разделенные трубами, являются
разные временные интервалы.

Класс В С#
public string _TimeSlots { get; set; }


public class TimeSlots
{
    public string StartSlot { get; set; }
    public string EndSlot { get; set; }
}


Что я уже пробовал:

Кто-нибудь может пожалуйста помочь мне,

как заполнить список двумя столбцами в c#.

спасибо

Karthik_Mahalingam

где вы хотите заполнить timeslotlist

abdul subhan mohammed

публичный список{временные интервалы} TimeSlotList
{
get { return _TimeSlots.Расщеплять(',').Выберите (Дата И Время.Разбор).Список(); }

набор
{
Временные Интервалы = _TimeSlots.Удалить (_TimeSlots.Длина - 1);
}
}

Karthik_Mahalingam

зачем вам нужна дата-время?Разбор, как вы используете строковый тип

abdul subhan mohammed

Я хочу заполнить только в классе, как список с использованием класса TimeSlot, get; set;

abdul subhan mohammed

публичный список{временные интервалы} TimeSlotList
{
get { return _TimeSlots.Расщеплять(',').Выберите (Дата И Время.Разбор).Список(); }

набор
{
Временные Интервалы = _TimeSlots.Удалить (_TimeSlots.Длина - 1);
}
}

2 Ответов

Рейтинг:
19

OriginalGriff

Попробуй:

string input = "08:00,11:00|11:00,13:00|13:00,16:00|";
List<TimeSlots> list = input.Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries)
                            .Select(ts => { string[] parts = ts.Split(',');
                                            return new TimeSlots { StartSlot = parts[0],
                                                                   EndSlot = parts[1] }; })
                            .ToList();


abdul subhan mohammed

Спасибо Грифф

Рейтинг:
1

Karthik_Mahalingam

пробовать

public List<TimeSlots> TimeSlotList
   {
       get { return
           _TimeSlots.Split('|').Select(k=> { var temp = k.Split(','); return new TimeSlots(){ StartSlot =temp[0], EndSlot =temp[1] } }).ToList();
       }
       set{
           _TimeSlots = "";
           value.ForEach(k => { _TimeSlots += k.StartSlot + "," + k.EndSlot + "|"; });
           _TimeSlots = _TimeSlots.TrimEnd('|');
       }
   }