Когда я больше года, как я могу выбрать месяц, для которого принадлежит максимальное значение?Как сгруппировать по одному члену и выбрать второй элемент?
Пожалуйста, обратите внимание на следующий код:
public class Data_Point
{
public int Month { get; set; }
public int Year { get; set; }
public int Value { get; set; }
}
static void Main(string[] args)
{
List<Data_Point> Data = new List<Data_Point>();
Data.Add(new Data_Point() { Month = 0, Year = 0, Value = 99 });
Data.Add(new Data_Point() { Month = 1, Year = 0, Value = 69 });
// Max should relate to one record only.
var Max_Year = (from e in Data
group e by e.Year into y
select new { Month(e => e.Month), Year = y.Key, Value = y.Max(e => e.Value) }).ToList();
}
Я знаю, что моя проблема не вполне возможно в SQL, но мне было интересно, если LINQ является более гибким здесь.
почему не 'Data.Max (х => x.Year) .Month'! – Anirudha
Ваш код запутан, попробуйте объяснить, что вы пытаетесь сделать. Вам нужен рекорд с самым высоким годом, включая месяц? – Guvante
Что вы ожидаете/хотите видеть (используя цифры, приведенные в примере кода)? выберите новый {Month = y.Max (x => x.Month), Year = ...;? – pasty