Я чувствую, что я на краю своего ответа!Linq Сортированные поля Groupby и Orderby
У меня есть пользовательский класс fileInfo
с держателями информации, такие как «отчетный номером магазина», «дата отчета» и т.д ...
У меня есть List<fileInfo>
, который я держу всю информацию о файле. Я попытался сгруппировать список по «отчетности номером магазина» и порядке «отчетной даты»
Я пришел со следующими
var results = ownedFileInfo.GroupBy(x => x.reportStore).Select(group=> new { KeyName = group.Key, KeyInfo = group.OrderBy(x=>x.reportDate).ThenBy(x=>x.reportStore)});
List<fileInfo> sortedFiles = new List<fileInfo>();
foreach (var group in results)
{
foreach (fileInfo fi in group.KeyInfo)
{
sortedFiles.Add(fi);
}
}
GroupBy и функциональность OrderBy работают, как ожидалось. Хотя я надеялся на ThenBy будет сортировать столбец GroupBy а :(
Результаты:
- магазин # ..... Дата
- 991 ........ 10/16/13
- 991 ........ 10/17/13
- 994 ........ 10/16/13
- 994 ........ 10/17/13
- 992 ........ 10/16/13
- +992 ........ 10/17/13
Ожидаемые результаты:
- магазин # ..... Дата
- 991 ........ 10/16/13
- 991 ........ 10/17/13
- 992 ........ 10/16/13
- 992 ....... .10/17/13
- 994 ........ 10/16/13
- 994 ........ 10/17/13
Возможно, один из наиболее впечатляющих примеров использования linq, пожалуйста, укажите, что я пропал без вести или что-то не так? Благодарим вас за продвижение за ваше время.
оба ваших примеров показывают отсутствие сортировки по дате, я что-то упускаю? – Hogan
Я не хороший qith linq, но я думаю, что вы не заказываете 'KeyName = group.Key' –
Попробуйте упорядочить конечный результат с помощью' results.OrderBy (grp => grp.KeyName); ' – NominSim