У меня есть статический список, который я хочу напечатать в конце.Как заказать список и группу по списку
class User
{
int ID {get;set;}
string status {get; set;}
DateTime startTime {get;set;}
int groupId {get;set;}
}
Я хочу сохранить список пользователей в памяти и распечатать в конце. Теперь список может иметь данные, такие как:
List<User> userList = new List<User>();
userList.Add(new User{ ID = 1, ..., groupId = 1 });
userList.Add(new User{ ID = 2, ..., groupId = 1 });
userList.Add(new User{ ID = 3, ..., groupId = 2 });
userList.Add(new User{ ID = 4, ..., groupId = 1 });
userList.Add(new User{ ID = 5, ..., groupId = 3 });
Я хочу, чтобы сгруппировать эти данные, которые я могу сделать с помощью userList.GroupBy(x => x.groupID)
, я получаю Enumberable<ID, List<User>>()
. Извините, в сгруппированных списках я хочу проверить, не имеет ли какой-либо из пользователей статус == fail, тогда я хочу распечатать всю информацию о пользователях, если status == true, тогда я хочу напечатать только имена пользователя или имена. Для этого я делаю
groupedList.Any(x => x.status == fail)
Но я хочу, чтобы мой вывод сортируется по STARTTIME, а затем я хочу, чтобы результат быть сгруппированы по Id
var result = userList.GroupBy(x=> x.groupID).OrderByDescending(x => x.startTime).ToList();
И потом, я хочу, чтобы мой результат, когда я напечатать как
startTime - 10.00 groupId - 1 ,id - 1, ....status - fail ... more properties
startTime - 10.00 groupId - 1, id - 2, .... status - pass ...
startTIme - 10.00 groupId - 1, id - 4, status - pass
startTiem = 10.00 groupId - 2, id - 3, status - pass (just this info)
starttime - 9.50 groupId - 3, id - 5, status - fail ... more info
starttime - 9.50 groupid - 3, id - 6, status - pass ... (still more info. as group has a fail case)
Если я использую запрос linq выше, он не дает того же выхода. Пожалуйста, предложите, как этого добиться.
Привет, Глорфиндель, я редактировал свой вопрос. Я действительно хочу сгруппировать их, потому что, если у любого пользователя в группе есть статус = сбой, я хочу напечатать дополнительную информацию или иначе (status = pass), я просто напечатаю минимальную информацию. – user3681542
ОК, но все еще неясно, потому что введенный образец ввода не соответствует желаемому выходу. Например. есть только одна запись с ID = 1 на входе, но две из них на выходе. – Glorfindel
Хорошо, так об идентификаторе, мое намерение заключается в том, что внутри группы у любого элемента есть случай сбоя, тогда я хочу показать исключение/причину, по которой он не прошел обработку. Если его пропуск (все пользователи в группе) имеют пропуск , я просто хочу показать, что информация пользователя с статусом прохода ... Итак, я все еще показываю все элементы списка. Мое единственное намерение сгруппировать их по GroupID - это получить статус всех пользователей этой группы. – user3681542