c#中合并DataTable重複行的值

來源:互聯網
上載者:User

複製代碼 代碼如下: //DataTable資料添加
Hashtable ht = new Hashtable();
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("id");
dt.Columns.Add(dc);
dc = new DataColumn("name");
dt.Columns.Add(dc);
dc = new DataColumn("values");
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["id"] = 1;
dr["name"] = "張三";
dr["values"] = "A";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 2;
dr["name"] = "李四";
dr["values"] = "B";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["id"] = 3;
dr["name"] = "張三";
dr["values"] = "C";
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;

//合并
for (int i = 0; i < dt.Rows.Count; i++ )
{
if (ht.ContainsKey(dt.Rows[i]["name"]))
{
//擷取行索引
int index = (int)ht[dt.Rows[i]["name"]];
//擷取最近一次的值(對應values)
string str = (string)dt.Rows[index]["values"];
//拼接
dt.Rows[index]["values"] = str + "|" + dt.Rows[i]["values"];
//重複資料刪除行
dt.Rows.RemoveAt(i);
//調整索引減1
i--;
}
else
{
//儲存名稱以及行索引
ht.Add(dt.Rows[i]["name"], i);
}

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.