2 tankgoing tankgoing 于 2018.02.26 14:30 提问

c#里DataTable里插入列

我有2个数组 一个string[] 一个int[] 然后string[]里有n个元素 int[]里有m个元素 现在想要在DataTable里插入一列 string[]里的是要插入的内容 int[]里的是每个string要插入几遍 感觉脑子已经不够用了 有没有大神来解答
好像看不太懂 就是string[]里面有n个人名 每个人名出现了m次 比如张三李四王五 张三这个名字出现了1次 李四出现了2次 王五出现了3次 现在想要的结果是张三李四李四王五王五王五 string[]里是名字 int[]里是出现的次数

2个回答

showbo
showbo   Ds   Rxr 2018.02.26 14:55
已采纳

int []m,int n长度一致用下面的,解决问题了记得采纳


        DataTable dt = new DataTable();
        dt.Columns.Add("xx");
        string[] n = "a,b,c,d".Split(',');
        int[] m = new int[] { 2, 3, 4, 5 };
        for (int i = 0; i < n.Length; i++)
        {
            for (int j = 0; j < m[i]; j++) {
                DataRow dr = dt.NewRow();
                dr["xx"] = n[i];
                dt.Rows.Add(dr);
            }
        }
showbo
showbo 回复tspz06: http://ask.csdn.net/questions/680702个解决了也记得采纳下哦,嘿嘿。。。
4 个月之前 回复
tankgoing
tankgoing 回复C币出货Q155132206: 好了解决了 给力
4 个月之前 回复
showbo
showbo 回复tankgoing: 小于数量自己要注意 判断index是否越界。if (index < dt.Rows.Count) dt.Rows[index++]["xx"] = n[i];
4 个月之前 回复
showbo
showbo 回复tankgoing: 你要在原来的基础上给新增列添加数据?那你的int []m总数据总和要和表格原有的行一样才行了。2个for改成这样。 int index = 0; for (int i = 0; i < n.Length; i++) { for (int j = 0; j < m[i]; j++) { dt.Rows[index++]["xx"] = n[i]; } }
4 个月之前 回复
tspz06
tspz06 回复tankgoing: 我点回答没有反应
4 个月之前 回复
tankgoing
tankgoing 回复C币出货Q155132206: 这样的话好像是添加行吧 添加进去是在我原有的数据下面 就是比如我有6*6的表格 这样添加了是从7.7这个坐标开始的
4 个月之前 回复
tankgoing
tankgoing 回复tspz06: 是的啊 想要添加列。。。怎么弄
4 个月之前 回复
tspz06
tspz06 他是要添加列,不是行
4 个月之前 回复
qq_38664352
qq_38664352   2018.02.26 14:33

"现在想要在DataTable里插入一列 string[]里的是要插入的内容" 这一段完全不懂什么意思。

tankgoing
tankgoing 就是string[]里面有n个人名 每个人名出现了m次 比如张三李四王五 有3个人 张三这个名字出现了1次 李四出现了2次 王五出现了3次 现在想要的结果是张三李四李四王五王五王五
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!