Все верно, вам подойдет struct или class, чтобы описать одну запись (строку), разница между ними будет что первое - value type, не может быть null. И далее любая коллекция, даже простой массив.
Предположим что вы описали сущность так:
class Item
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime Time { get; set; }
}
для простоты используем List - простейший динамический список, можно добавлять, удалять и т.п.:
var timeTable = new List<Item>
{
new Item { Id = 1, Title = "Иван Сергеевич", Time = DateTime.Parse("20.05.2019 18:45") },
new Item { Id = 2, Title = "Петр Николаевич", Time = DateTime.Parse("20.05.2019 16:45") },
};
И теперь через Linq (using System.Linq;) можно работать с этими данным, работает на любой коллекции или массиве, внедряющих интерфейс IEnumerable, и предоставляет различные методы типа
Where,
Min,
Max,
OrderBy и т.п.
var ordered = timeTable.OrderBy(item => item.Time); // Получили IEnumerable<Item> отсортированный по Time
P.S. Такая запись, более похожая на SQL тоже возможна, но думаю подход с методами будет все же более удобным
var ordered = from item in timeTable orderby item.Time ascending select item;