2016-01-15 7 views
1

У меня есть код для сортировки моей коллекции в linq на C#. Я хочу, чтобы группа groupName собирала суммы по томам, заказывала эту коллекцию, а также передавала третий параметр pctVol в новую сортированную коллекцию. Что я делаю не так? Я знаю, что проблема заключается в строке pctVol = group.Selecct (item => item.pctVol).LINQ Синтаксис для выбора параметра для копирования

  var inBetween = this.GroupBy(item => item.houseName) 
      .Select(group => 
        new DataItem 
        { 
         houseName = group.Key, 
         VOLUME = group.Sum(item => item.VOLUME), 
         pctVol = group.Select(item => item.pctVol) 
        }) 
      .ToList(); 
      ObservableCollection<DataItem> objSort = new ObservableCollection<DataItem>(inBetween.OrderBy(DataItem => 
            DataItem.VOLUME)); 
      return objSort; 

ответ

3

Какую ценность вы хотите иметь pctVol? С этим кодом он выглядит как DataItem.pctVol будет IEnumerable, содержащий все значения pctVol в этой группе.

Если вам нужно одно значение, и все значения pctVol в каждой группе гарантированно будут одинаковыми, тогда вы можете просто взять значение из первого элемента, например: pctVol = group.First(). PctVol

+0

Doh! В этом есть смысл. Благодаря! – Sean

Смежные вопросы