Как мне сгруппироваться, чтобы получить определенные результаты из списка
Допустим, у меня есть это
Id Day Time 1 Sun 8am to 4pm 1 Sun 5pm to 9pm 1 Mon 8m to 6pm 1 Tue 8m to 6pm 2 Sun 8am to 4pm 2 Mon 8am to 4pm
Я хочу сделать ответ api в .net framework ,то ожидаемый результат это когда я выбираю id=1
{ "Tables": [ { "hours": [ { "days": "Sun" "time": [ "8am to 4pm", "5pm to 9pm" ] } { "day": Mon - Tue "time":[ 8am to 6pm] } { "day": "wednesday-sat" "time": [ closed ] } ] } ] }
Что я уже пробовал:
У меня есть этот класс TableList:
public class TableList //api response class { public List<Table> Table { get; set; } }
а это класс таблицы
public class Table //api response class { public List<Hours> hours { get; set; } public Table (List<Hours> _hours) { this.hours = _hours; } }
public class Hours //api response class { public string days { get; set; } public <string> time { get; set; } public Hours(string days, <string> time) { this.days = days; this.time = time; } }
TableList tableList = new TableList (); TableList.Table= new List<Table>();
List<TableValue> tableValue= service.getTime(1); //table value has the data from SQL
foreach (TableValues tv in tableValues) //Tablevalues has the values of the record { List<string> hourtime= new List<string> { new string(tv.hours.ToCharArray()) }; List<Hours> hours = new List<Hours> { new Hours(tv.days, hourtime) }; TableList.Table.Add(new Table(hours)) }
Но то, что я сейчас получаю, это
{ "Tables": [ { "hours": [ { "days": "Sun" "time": ["8am to 4pm"] } ] }, { "hours": [ { "days": "Sun" "time": ["5pm to 9pm"] } ] }, { "hours": [ { "day": Mon "time": [8am to 6pm] } ] }, { "hours": [ { "day": Tue "time":[ 8am to 6pm] } ] } ] }
я хочу получить часы Id=1 один раз, а внутри них-дни и время. Мне не нужен новый массив для каждого нового времени одного и того же идентификатора. Я также не хочу, чтобы в воскресенье было два альбома. Также хочу, если более одного дня имеет одно и то же время, то нет необходимости показывать в новом массиве я хочу, чтобы это было похоже на ожидаемый результат, который я показал u выше. и я тоже хочу реализовать "закрытое"