You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何为DataTable添加新列并基于同表其他列生成序列号

C# DataTable新增序列号列实现方案

方法1:LINQ实现(推荐,代码简洁)

  • 先给目标DataTable新增int类型的Srno列
  • 按ID字段升序排序所有行,遍历依次赋值序列号
    示例代码:
// 假设你的原DataTable变量名为dt
// 新增序列号列
dt.Columns.Add("Srno", typeof(int));

// 按ID升序排序后赋值
int seq = 1;
foreach (DataRow row in dt.AsEnumerable().OrderBy(r => r.Field<int>("ID")).ToList())
{
    row["Srno"] = seq++;
}

注意:如果ID列存储类型为字符串,需将r.Field<int>("ID")调整为int.Parse(r.Field<string>("ID"));如果ID存在空值,需自行添加空值判断逻辑避免报错。

方法2:DataView排序实现(无需依赖LINQ)

  • 新增Srno列后,通过DataView按ID升序排序,遍历视图行直接赋值
    示例代码:
// 新增序列号列
dt.Columns.Add("Srno", typeof(int));

// 构造按ID升序的视图
DataView sortedView = dt.DefaultView;
sortedView.Sort = "ID ASC";

// 遍历赋值
for (int i = 0; i < sortedView.Count; i++)
{
    sortedView[i]["Srno"] = i + 1;
}

两种方案执行后,最终的DataTable效果如下:

IDSomeColSomeOthSrno
456abcdef1
500ghijkl2
505mnopqr3

内容的提问来源于stack exchange,提问作者Atk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:54:05