将int转换为int

我有一个数据集,我试图将数据集的所有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"]); 

提前致谢..

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

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

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

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

嗯,是。 看看这一行:

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

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

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

或者,使用LINQ – 类似于:

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

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

也许你想要的东西:

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

那是因为它是一个arrays! 尝试:

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