Я пишу это программное обеспечение, которое читает CSV-файл и помещает его в datagridview. Здесь вы можете увидеть картину применения:Средние значения строк с таким же временем в datagridview
Я достижения этой цели с помощью следующего кода, во-первых:
private string[,] LoadCsv(string filename)
{
string whole_file = System.IO.File.ReadAllText(filename);
whole_file = whole_file.Replace('\n', '\r');
string[] lines = whole_file.Split(new char[] { '\r' },
StringSplitOptions.RemoveEmptyEntries);
int num_rows = lines.Length;
int num_cols = lines[0].Split(';').Length;
string[,] values = new string[num_rows, num_cols];
for (int r = 0; r < num_rows; r++)
{
string[] line_r = lines[r].Split(';');
for (int c = 0; c < num_cols; c++)
{
values[r, c] = line_r[c];
}
}
return values;
}
, а затем это:
private void btnGo_Click(object sender, EventArgs e)
{
string[,] values = LoadCsv(txtFile.Text);
int num_rows = values.GetUpperBound(0) + 1;
int num_cols = values.GetUpperBound(1) + 1;
dgv.Columns.Clear();
for (int c = 0; c < num_cols; c++)
dgv.Columns.Add(values[0, c], values[0, c]);
for (int r = 1; r < num_rows; r++)
{
dgv.Rows.Add();
for (int c = 0; c < num_cols; c++)
{
dgv.Rows[r - 1].Cells[c].Value = values[r, c];
}
}
}
Что Я спрашиваю сейчас, есть ли возможность усреднять значения поминутно внутри datagridview или с другим интервалом o f (требуется небольшой интервал от 1 до 5 минут).
Благодарим за помощь!
Звучит как работа для LINQ .GroupBy() и .Aggregate(). – Oliver
Поскольку 'DataGridView' НЕ привязан к какой-либо' DataTable', вам придется перебирать строки, собирать те же даты и усреднять значения vales и отображать эту информацию где-то. Это делает для вас много работы. Если вы помещаете данные в «DataTable», то вы можете использовать LINQ как предложение @Oliver. Использование этого подхода сделает получение средних значений, имеющих одну и ту же дату, намного проще, поскольку это то, что LINQ делает очень хорошо, и делает этот тип «запроса» намного проще и открывает другие методы поиска/сбора, с которыми вы можете столкнуться в будущее. Просто мысль. – JohnG
Спасибо, Оливер и Джон, я займусь тем маршрутом, который ты указал мне, который кажется лучшим. –