#c# #.net #linq #ado.net
#c# #.net #linq #ado.net
Вопрос:
Я не знаю, почему я получаю следующее исключение, как я могу привести к группировке строк? Что означает группировка строк
Комментарии:
1. Я удивлен, что это вообще компилируется.
Ответ №1:
Быстрый ответ: измените код на
foreach(var InvoiceHeader in InvoiceHeadercollection)
Код linq сгенерировал новый класс, который вы можете представить следующим образом:
class AutoGeneratedClass : IEnumerable<DataRow>
{
public string Key { get; } // The InvoiceAccount field
}
(Это не называется «AutoGeneratedClass»; я просто использую это, чтобы оно соответствовало известному нам синтаксису). Поскольку для этого автоматически сгенерированного класса нет имени, вы должны использовать «var».
Комментарии:
1. тогда я получу поле on<строка> (..)
Ответ №2:
Посмотрите на ваш запрос LINQ, который вы используете group by
— InvoiceHeaderCollection
это не набор строк данных, это IGrouping<DataRow>
отдельная группа для каждой отдельной «учетной записи счета». — что вы хотели сделать с группировкой? Или вы намеревались упорядочить свои строки по учетной записи Invoice?
Ответ №3:
InvoiceHeaderCollection
это набор групп, группы представляют собой что-то вроде:
Key Value
invoice account1 datarow1 //the value is a `DataRow`
datarow2
datarow4
invoice account2 datarow3
invoice account3 datarow5
Итак, я думаю, вам нужно:
foreach(var g in InvoiceHeaderCollection)
{
DataRow[] rows = g.ToArray(); //to get all the DataRows in the group
//maybe another loop through the rows
}