Групповой метод не распознается в запросе LINQ - PullRequest
0 голосов
/ 18 января 2010

LINQ-newb возникли проблемы при использовании группировки. Я пытаюсь запросить IEnumerable под названием дозыWithHighestScore.

Я следую этому примеру: http://msdn.microsoft.com/en-us/vcsharp/aa336747.aspx#minGrouped

Вот мой код:

    var doseWithLowestVolumeForForm =
        from d in dosesWithHighestScore
        group d by d.formulation.form into g                
        select new { 
            Form = g.Key, 
            LowDose = g.Group.Min(d => d.doseAdministrableAmount)
        };

Использование «Группа» вызывает эту ошибку:

'System.Linq.IGrouping' не содержит определения для 'Group', и не найден метод расширения 'Group', принимающий первый аргумент типа 'System.Linq.IGrouping' (вы пропустили директиву using ссылка на сборку?)

Вот мои слова:

using System;
using System.Text;
using System.Linq;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Collections;

Почему я получаю эту ошибку?

1 Ответ

3 голосов
/ 18 января 2010

Вы избавляетесь от термина Group в своем назначении на LowDose. В LINQ-to-objects сама группа является IEnumerable<>, поэтому вы можете применять к ней другие операции LINQ без каких-либо дополнительных квалификаторов. Свойство Key предоставляется в IGrouping, чтобы вы могли получить доступ к значению, по которому группа была ... ну, сгруппирована.

var doseWithLowestVolumeForForm =
        from d in dosesWithHighestScore
        group d by d.formulation.form into g                
        select new { 
            Form = g.Key, 
            LowDose = g.Min(d => d.doseAdministrableAmount)
        };

Примеры на сайте, демонстрирующие использование свойства Group, неверны.

...