Звучит так, как будто вы хотите разделить списки, но вы можете управлять ими как единым целым. Другими словами, вы хотите, чтобы тип сортировался индивидуально и помещался в EventTime, который также сортируется самостоятельно. Один из способов сделать это (что может быть, а может и не быть лучшим способом, который я признаю), состоит в том, чтобы отсортировать их каждый в список и добавить их обратно во вновь отсортированный список, которым можно управлять.
Я привел пример, где я сортирую людей по имени и паролю. Очевидно, что модель Person для этого примера ужасна, но это то, что я уже поцарапал, поэтому я использовал ее.
В этом примере я сначала сортирую людей по Имени и ссылаюсь на них, затем я сортирую людей по Паролю и ссылаюсь на это. Наконец, я создаю новый список людей и добавляю каждого человека в список по отсортированному имени и паролю. Если это не то, что вы ищете или просите, пожалуйста, дайте мне знать, и я удалю ответ.
using System;
using System.Collections.Generic;
using System.Linq;
namespace Question_Answer_Console_App
{
public class Program
{
[STAThread]
static void Main(string[] args)
{
var people = new List<Person>()
{
new Person() { Name = "Mathew", Password = "2345" },
new Person() { Name = "Mathew", Password = "1234" },
new Person() { Name = "John", Password = "5678" },
new Person() { Name = "Mark", Password = "5678" },
new Person() { Name = "Luke", Password = "0987" },
new Person() { Name = "John", Password = "6534" }
};
var names = people.OrderBy(person => person.Name).Select(person => person.Name).ToList();
var passwords = people.OrderBy(person => person.Password).Select(person => person.Password).ToList();
var sortPeople = new List<Person>();
for (int i = 0; i < names.Count(); i++) sortPeople.Add(new Person() { Name = names[i], Password = passwords[i] });
foreach (var person in sortPeople) Console.WriteLine($"{person.Name} : {person.Password}");
Console.Read();
}
}
public class Person
{
public string Name { get; set; }
public string Password { get; set; }
}
}
Я действительно чувствую, что есть запрос linq, который мог бы решить эту проблему, но я не мог обернуться вокруг него. Пожалуйста, дайте мне знать, если это то, что вы ищете.