Это может работать для вас:
var grouped = model.GroupBy(m => m.name).ToArray();
Это создаст объект grouped
типа IGrouping<string, Model>[]
(массив IGrouping...
) .ToArray()
необязательно, и если вы удалите его, выполучить IEnumerable<IGrouping<string, Model>>
, но не позволяйте вложенным <>
напугать вас.
Элементы в вашем исходном списке сгруппированы по имени, поэтому у группы будет свойство Key
, которое будет таким же длякаждый элемент в группе.
Чтобы напечатать результаты, например:
foreach(var group in grouped)
{
Console.WriteLine($"Printing group: {group.Key}");
foreach(var model in group)
{
Console.WriteLine($"\tName: {model.name}, File: {model.file}");
}
}
Обратите внимание, что каждый элемент в группе является коллекцией объектов вашей модели.
Используйте отладчик, чтобы увидеть, как выглядит эта структура, и если вам нужна дополнительная помощь - спросите ...