gpt4 book ai didi

c# - 从数据集添加到 int 数组

转载 作者:太空狗 更新时间:2023-10-30 00:12:32 24 4
gpt4 key购买 nike

我必须将状态值与“事件”相同的数据集中的所有 ID 添加到整数数组 PromotionID。这怎么可能。我错过了什么?

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

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

错误是:

foreach statement cannot operate on variables of type 'bool' because 'bool' does not contain a public definition for 'GetEnumerator'

最佳答案

我建议使用 LINQ:

int[] promotionIDs = (from dr in ds.Tables[0].AsQueryable()
where dr.Field<string>("Status") == "Active"
select dr.Field<int>("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<string>("Status") == "Active") {
...
}
}

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

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

...是创建一个数组(丢弃其中的所有内容),其中有一个值,即当前记录的 Id。数组不是用于添加项目的良好数据结构。让我建议改用列表:

List<int> promotionIDs = new List<int>();

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

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

int[] promotionIDArray = promotionIDs.ToArray();

关于c# - 从数据集添加到 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com