Ho la seguente struttura di classe:Linq Selezionare Raggruppa per
public class PriceLog
{
public DateTime LogDateTime {get; set;}
public int Price {get; set;}
}
Per un elenco < PriceLog> Voglio una query LINQ per generare un output che è equivalente ai dati rappresentati come di seguito:
LogDateTime | AVG (Prezzo)
gen 2012 | 2000
feb 2012 | 3000
Semplicemente: voglio calcolare il prezzo medio su ogni mese dell'anno.
Nota: la proprietà LogDateTime deve essere formattato come LogDateTime.ToString("MMM yyyy")
ho provato quanto segue, ma non è sicuro se si genererà il risultato desiderato:
var result = from priceLog in PriceLogList
group priceLog by priceLog.LogDateTime.ToString("MMM yyyy") into dateGroup
select new PriceLog { GoldPrice = (int)dateGroup.Average(p => p.GoldPrice), SilverPrice = (int)dateGroup.Average(p => p.SilverPrice)};
g.LogDateTime restituisce un errore! – Lucifer
risposta è stata modificata. – MuhammadHani