首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将int转换为int[]

问将int转换为int[]
EN

Stack Overflow用户
提问于 2010-11-18 23:32:09
回答 4查看 11.2K关注 0票数 2

我有一个数据集,我正在尝试将该数据集的所有in放入一个datarow中,以便最终将其保存在一个int数组中。这对我不起作用。上面写着"Cannot implicitly convert from type int to int[]"

代码语言:javascript
复制
Dataset ds = new BusinessLogic().Getsamples(MerchantID);

Datarow dr = ds.Tables[0].Rows[0];

int[] SampleID = Convert.ToInt32(dr["Id"]);

提前谢谢..

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-18 23:34:44

您必须创建一个新的int数组,并将int放入其中。

代码语言:javascript
复制
int sampleID = new int[1];
sampleID[0] = Convert.ToInt32(dr["Id"]);

我认为这个速记也会起作用:

代码语言:javascript
复制
int[] SampleID = new int[]{Convert.ToInt32(dr["Id"])};
票数 8
EN

Stack Overflow用户

发布于 2010-11-18 23:36:12

嗯,是的。看这一行:

代码语言:javascript
复制
int[] SampleID = Convert.ToInt32(dr["Id"]);

右边是一个int (Convert.ToInt32的结果),但您正在尝试将其转换为数组。

如果您想要所有的If,我建议您创建一个List<int>并迭代各行,为每一行调用list.Add(Convert.ToInt32(dr["Id"]),然后在最后调用ToArray() (如果确实需要)。

或者,使用LINQ -类似于:

代码语言:javascript
复制
int[] ids = ds.Tables[0].AsEnumerable()
                        .Select(dr => dr.Field<int>("Id"))
                        .ToArray();
票数 7
EN

Stack Overflow用户

发布于 2010-11-18 23:37:58

你只是得到一个ID,我想你的意思是循环所有的行,得到所有的ID?

也许你想要这样的东西:

代码语言:javascript
复制
List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
    ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4216493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档