C# 将int转换为int[]
我有一个数据集,我正试图将数据集的所有ID放入一个数据行中,最终将其保存在一个int数组中。这对我不起作用。它说C# 将int转换为int[],c#,asp.net,C#,Asp.net,我有一个数据集,我正试图将数据集的所有ID放入一个数据行中,最终将其保存在一个int数组中。这对我不起作用。它说“不能从int类型隐式转换为int[]” 提前感谢。您必须创建一个新的int数组并将int放入其中 int sampleID = new int[1]; sampleID[0] = Convert.ToInt32(dr["Id"]); 我认为这种速记法也适用: int[] SampleID = new int[]{Convert.ToInt32(dr["Id"])}; 您必须创建一
“不能从int类型隐式转换为int[]”
提前感谢。您必须创建一个新的int数组并将int放入其中
int sampleID = new int[1];
sampleID[0] = Convert.ToInt32(dr["Id"]);
我认为这种速记法也适用:
int[] SampleID = new int[]{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 = new int[] {(int)dr["Id"]);
那是因为它是一个数组!尝试:
int[] SampleID = new int[] {(int)dr["Id"]);
嗯,是的。请看这一行:
int[] SampleID = Convert.ToInt32(dr["Id"]);
右侧是一个int
(Convert.ToInt32的结果),但您正在尝试将其转换为数组
如果您想要所有的Id,我建议您创建一个列表
并在行上迭代,为每一行调用List.Add(Convert.ToInt32(dr[“Id]”))
,然后在最后调用ToArray()
或者,使用LINQ-类似于:
int[] ids = ds.Tables[0].AsEnumerable()
.Select(dr => dr.Field<int>("Id"))
.ToArray();
List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();
int[]ids=ds.Tables[0].AsEnumerable()
.Select(dr=>dr.Field(“Id”))
.ToArray();
是的。看这行:
int[] SampleID = Convert.ToInt32(dr["Id"]);
右侧是一个int
(Convert.ToInt32
的结果),但您正在尝试将其转换为数组
如果您想要所有的Id,我建议您创建一个列表
并在行上迭代,为每一行调用List.Add(Convert.ToInt32(dr[“Id]”))
,然后在最后调用ToArray()
或者,使用LINQ-类似于:
int[] ids = ds.Tables[0].AsEnumerable()
.Select(dr => dr.Field<int>("Id"))
.ToArray();
List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();
int[]ids=ds.Tables[0].AsEnumerable()
.Select(dr=>dr.Field(“Id”))
.ToArray();
您只是获取了一个ID,我想您可能是想在所有行中循环获取所有ID
也许你想要这样的东西:
int[] ids = ds.Tables[0].AsEnumerable()
.Select(dr => dr.Field<int>("Id"))
.ToArray();
List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();
List id=new List();
foreach(ds.Tables[0].行中的数据行dr)
{
添加(转换为32(dr[“Id”]);
}
int[]SampleID=ids.ToArray();
您只是获取了一个ID,我想您可能是想在所有行中循环获取所有ID
也许你想要这样的东西:
int[] ids = ds.Tables[0].AsEnumerable()
.Select(dr => dr.Field<int>("Id"))
.ToArray();
List<int> ids = new List<int>();
foreach(Datarow dr in ds.Tables[0].Rows)
{
ids.Add(Convert.ToInt32(dr["Id"]));
}
int[] SampleID = ids.ToArray();
List id=new List();
foreach(ds.Tables[0].行中的数据行dr)
{
添加(转换为32(dr[“Id”]);
}
int[]SampleID=ids.ToArray();
Convert.ToInt32返回单个int而不是它们的数组:您是尝试获取单个ID(转换为单个int)还是获取所有ID。您的代码是部分单个,部分多。Convert.ToInt32返回单个int而不是它们的数组:您是尝试获取单个ID(转换为单个int)或者获取全部ID。你的代码部分是单值,部分是多值。你打败了我,所以对你来说+1。老实说,我不明白为什么这实际上是一件有用的事情。为什么要创建一个单元素数组,而不仅仅是将单个值保留在它自己的变量中?这不像数组以后可以扩展……你打败了我,所以对你来说+1是一样的,我不能老实说,我不明白为什么这实际上是一件有用的事情。为什么要创建一个单元素数组,而不仅仅是将单个值保留在它自己的变量中?这不像数组以后可以扩展。。。