将int转换为int []

时间:2010-11-18 15:32:09

标签: c# asp.net

我有一个数据集,我试图将数据集的所有ID都放到数据行中,最后将它保存在一个int数组中。它不适合我。它说"Cannot implicitly convert from type int to int[]"

Dataset ds = new BusinessLogic().Getsamples(MerchantID);

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

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

提前致谢..

4 个答案:

答案 0 :(得分:7)

你必须创建一个新的int数组并将int放在那里。

int sampleID = new int[1];
sampleID[0] = Convert.ToInt32(dr["Id"]);

我认为这种速记也有效:

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

答案 1 :(得分:7)

是的。看看这一行:

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

右侧是intConvert.ToInt32的结果),但您正在尝试将其转换为数组

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

或者,使用LINQ - 类似于:

int[] ids = ds.Tables[0].AsEnumerable()
                        .Select(dr => dr.Field<int>("Id"))
                        .ToArray();

答案 2 :(得分:4)

你刚刚拿出一个ID,我想你可能想要遍历所有行中的所有ID?

也许你想要这样的东西:

List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
    ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();

答案 3 :(得分:1)

那是因为它是一个阵列!尝试:

int[] SampleID = new int[] {(int)dr["Id"]);