private void LoadData(string filename) { textBox1.Text = filename; DataTable dt = null; try { dt = CsvParser.GetDataTableFromCsv(filename, cbDateFormat.SelectedValue.ToString()); } catch (FormatException e) { Debug.WriteLine(e); MessageBox.Show("Error occurred while parsing data from CSV file!" + e.Message); return; } catch (Exception e) { Debug.WriteLine(e); MessageBox.Show("Error occurred while parsing data from CSV file!"); return; } List <Employee> allEmployees = EmployeeParser.GetEmployeesFromDatatable(dt); dgvAllEmployees.DataSource = allEmployees; var workByPairs = FindWorkTogether(allEmployees); var longestWorkByPairs = workByPairs.GroupBy(gr => new { gr.ID1, gr.ID2 }).Select( g => new { ID1 = g.Key.ID1, ID2 = g.Key.ID2, Days = g.Sum(s => s.Days), //sum per project for pair of employees ProjectIDs = string.Join(",", g.Select(s => s.ProjectID)) }).OrderByDescending(o => o.Days).ToList(); dgvLongestWork.DataSource = longestWorkByPairs; UpdateDateCellsFormat(); }