запрос linq-среднее значение
Нахожу среднее значение температуры, но не могу узнать месяц когда была такая температура. Все данные у меня есть, они считываются из текстового файла. Нужно узнать что это был за месяц с помощью запроса linq. Как это сделать?
static void midlle(List<WeatherInfo> lweatherInfo)
{
string variant;
do
{
Console.Clear();
Console.WriteLine("+-----------------------+");
Console.WriteLine("|Введите месяц или 'всё'|");
Console.WriteLine("+-----------------------+");
//Console.Clear();
variant = Console.ReadLine();
if (variant == "exit")
{
break;
}
if (variant == "все месяцы" || variant == "среднее" || variant == "всё")
{
var midValue = lweatherInfo.Average(w => w.temperature);//.ElementAt(0);
var midTemperature = midValue.temperature;
var midMonth = midValue.month;
var midDay = midValue.day;
Console.WriteLine("+-------+-----------+------------+");
Console.WriteLine("|День |Месяц |Среднее |");
Console.WriteLine("+-------+-----------+------------+");
Console.WriteLine($"|{midDay,7}|{midMonth,11}|{midTemperature,12}|");
Console.WriteLine("+-------+-----------+------------+");
}
else
{
var midValue = lweatherInfo.Where(w => w.month == variant).Average(w => w.temperature);
var midTemperature = midValue.temperature;
var midMonth = midValue.month;
var midDay = midValue.day;
Console.WriteLine("+-------+-----------+------------+");
Console.WriteLine("|День |Месяц |Максимум |");
Console.WriteLine("+-------+-----------+------------+");
Console.WriteLine($"|{midDay,7}|{variant,11}|{midTemperature,12}|");
Console.WriteLine("+-------+-----------+------------+");
}
Console.ReadKey();
} while (variant != "еffcxxa3211");
}
static void Main(string[] args)
{
List<WeatherInfo> lweatherInfo = new List<WeatherInfo>();
string[] lines = File.ReadAllLines("weather.txt", Encoding.Default);//.GetEncoding(1251));
int variant;
for (int i = 0; i < lines.Length; i++)
{
var line = lines[i].Split(' ');
WeatherInfo weatherInfo = new WeatherInfo()
{
day = Convert.ToInt32(line[0]),
month = line[1],
temperature = Convert.ToInt32(line[2]),
description = line[3]
};
lweatherInfo.Add(weatherInfo);
}
midlle(lweatherInfo);
}