2015-06-18 7 views
1

Я пытаюсь сделать группу By на IEnumerable. Однако всякий раз, когда я пытаюсь завершить, я все время получаю сообщение об ошибке.GroupBy Linq IEnumerable error

Dim query As IEnumerable(Of CreditItem) = _ 
    From credits In unprocessedCredits _ 
    Group credits By unprocessedCreditsGrouped = _ 
      New With {Key .Make = credits.Make, _ 
        Key .Part = credits.PartNumber, _ 
        Key .CustomerNumber = credits.CustomerNumber, _ 
        Key .OrderNumber = credits.OrderNumber} _ 
    Into Group _ 
        Select New CreditItem With { _ 
        .Make = unprocessedCreditsGrouped.Make, _ 
        .Part = unprocessedCreditsGrouped.PartNumber, _ 
        .CustomerNumber = unprocessedCreditsGrouped.CustomerNumber, _ 
        .OrderNumber = unprocessedCreditsGrouped.OrderNumber _ 
        }) 

Мне нужно Группировать по нескольким свойствам, например, make, partnumber, customernumber. Также unprocessedCredits также содержит поле «количество», которое мне нужно будет получить сумму количества в зависимости от предложения group by. Выбрать Новый CreditItem не работает. получение некоторого аргумента, не указанного для указанного параметра.

Однако, я не знаю, действительно ли мне нужен оператор select, потому что я действительно хочу выбрать все в этом ienumerable.

Не только эти свойства, но я не думаю, что это возможно с группой?

+0

http://stackoverflow.com/q/9997001/1070452 – Plutonix

+0

Какую ошибку вы получаете? Ваш тип возврата будет «IGrouping (Of ​​AnoinymousType, Of CreditItem)», если у вас нет 'Select' позже, который вы не показываете. –

+0

отредактировал оригинальное сообщение, чтобы отразить более четко. – user3542850

ответ

1

Вы можете создать CreditItem непосредственно как группировка переменной:

Dim query As IEnumerable(Of CreditItem) = _ 
    From credits In unprocessedCredits _ 
    Group credits By unprocessedCreditsGrouped = _ 
      New CreditItem With _ 
         { _ 
          .Make = credits.Make, _ 
          .Part = credits.PartNumber, _ 
          .CustomerNumber = credits.CustomerNumber, _ 
          .OrderNumber = credits.OrderNumber _ 
         } _ 
    Into Group _ 
    Select unprocessedCreditsGrouped 
+0

Я получаю сообщение об ошибке в New CreditItem. Аргумент не указан для параметра 'sqlR' 'Friend Sub New (sqlR As System.Data.SqlClient.SqlDataReader)' – user3542850

+0

'CreditItem' должен иметь конструктор без параметров –