当前位置:  开发笔记 > 编程语言 > 正文

从数据集添加到int数组

如何解决《从数据集添加到int数组》经验,为你挑选了1个好方法。



1> Heinzi..:

我建议使用LINQ:

int[] promotionIDs = (from dr in ds.Tables[0].AsQueryable()
                      where dr.Field("Status") == "Active"
                      select dr.Field("Id")).ToArray();

如果你想修改你的代码,让我告诉你它有什么问题:

foreach (DataRow dr in ds.Tables[0].Rows[i]["Status"].ToString() == "Active")

i来自哪里?您正在使用foreach,因此您不需要计数器变量.你的循环应该如下所示:

foreach (DataRow dr in ds.Tables[0].Rows) {
    if (dr.Field("Status") == "Active") {
        ...
    }
}

现在,如何将Id添加到数组中.你在这做什么......

promotionID = new int[] { Convert.ToInt32(dr["Id"]) };

...是用一个值创建一个数组(抛弃其中的所有内容),这是当前记录的Id.数组不是添加项目的好数据结构.我建议改用List:

List promotionIDs = new List();

foreach (DataRow dr in ds.Tables[0].Rows) {
    if (dr.Field("Status") == "Active") {
        promotionIDs.Add(dr.Field("Id"));
    }
}

如果你仍然需要一个数组,你可以在之后转换它:

int[] promotionIDArray = promotionIDs.ToArray();

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有