我有一个数据集,我正在尝试将该数据集的所有in放入一个datarow中,以便最终将其保存在一个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"]);提前谢谢..
发布于 2010-11-18 23:34:44
您必须创建一个新的int数组,并将int放入其中。
int sampleID = new int[1];
sampleID[0] = Convert.ToInt32(dr["Id"]);我认为这个速记也会起作用:
int[] SampleID = new int[]{Convert.ToInt32(dr["Id"])};发布于 2010-11-18 23:36:12
嗯,是的。看这一行:
int[] SampleID = Convert.ToInt32(dr["Id"]);右边是一个int (Convert.ToInt32的结果),但您正在尝试将其转换为数组。
如果您想要所有的If,我建议您创建一个List<int>并迭代各行,为每一行调用list.Add(Convert.ToInt32(dr["Id"]),然后在最后调用ToArray() (如果确实需要)。
或者,使用LINQ -类似于:
int[] ids = ds.Tables[0].AsEnumerable()
.Select(dr => dr.Field<int>("Id"))
.ToArray();发布于 2010-11-18 23:37:58
你只是得到一个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();https://stackoverflow.com/questions/4216493
复制相似问题