C# 拆分数据表

C# 拆分数据表,c#,.net,C#,.net,我有下表数据表 Name classhours Coursename ====================================== Tom 2 A Jack 2 B Joe 2 C stella 3 D Jose 3 E 我需要

我有下表数据表

Name      classhours        Coursename
======================================
Tom            2              A
Jack           2              B
Joe            2              C
stella         3              D
Jose           3              E
我需要将表中的行合并到具有相同学时的行中,并将学时相加

表B

Name                classhours       Coursename
===============================================
Tom,Jack,Joe            6              A,B,C
Stella,Jose             6               D,E
现在我需要进一步拆分它。。在课程名称列中,我最多可以有2门课程。。所以我需要把表B分解成下表

Name                classhours       Coursename
===============================================
Tom,Jack                4               A,B
Joe                     2                C
Stella,Jose             6               D,E
我们如何进一步拆分它以检查CourseName的计数不超过2? 如果你需要进一步解释,请告诉我。检查代码的附件 请帮忙

这是密码

for (int i = 0; i < dataTable.Rows.Count; i++)
{
    for (int j = i + 1; j < dataTable.Rows.Count; j++)
    {
        if(datatable.Rows[i]["classhours"].ToString() == datatable.Rows[j]["classhours"].ToString())
        {
           //Adding the second row and third row to the first row and deleting the second and third row.
        }
    }
}
for(int i=0;i
嗯,看起来你只需要一点小小的改变

for (int i = 0; i < dt.Rows.Count; i++)
{
   bool notCombined = true;
   int target = dt.Rows[i]["hours"];
   for (int j = i + 1; j < dt.Rows.Count && notCombined; j++)
   {
        if(target == dt.Rows[j]["hours"].ToString())
        {
             dt.Rows[i]["name"] += "," + dt.Rows[j]["Name"];
             dt.Rows[i]["hours"] += target;
             dt.Rows[i]["course"] += "," + dt.Rows[j]["course];
             dt.Rows[j].Delete();
             notCombined = false;
        }
}

看来你只需要一点零钱

for (int i = 0; i < dt.Rows.Count; i++)
{
   bool notCombined = true;
   int target = dt.Rows[i]["hours"];
   for (int j = i + 1; j < dt.Rows.Count && notCombined; j++)
   {
        if(target == dt.Rows[j]["hours"].ToString())
        {
             dt.Rows[i]["name"] += "," + dt.Rows[j]["Name"];
             dt.Rows[i]["hours"] += target;
             dt.Rows[i]["course"] += "," + dt.Rows[j]["course];
             dt.Rows[j].Delete();
             notCombined = false;
        }
}