我有一个数据集,其中一个表有39行。现在我想将我的id列值的值存储在一个单独的数组中,如string[]
ids。
我已经像这样定义了我的数组:
string[] ids = null;
我用这一行来存储这个数组中的值:
for ( int i = 0; i < mydataset.Tables[0].Rows.Count; i++)
{
ids[i] = mydataset.Tables[0].Rows[i]["id"].ToString();
}
问题是获取了id列值但未存储在ids数组中。它只是抛出一个异常,比如Object引用没有将实例设置为对象的实例。 但是当我使用调试模式检查我的代码时,我的“id”列值被提取但不存储在ids数组中。 有人可以帮忙吗?我错过了什么? 谢谢...
答案 0 :(得分:0)
您已声明数组引用但实际上未创建数组,您必须初始化它。您需要将数组大小等于或大于预期元素。
string[] ids = new string[100];
你最好使用List,它值得一读有关两个解释here之间的区别。
List<string> ids = new List<string>();
for ( int i = 0; i < mydataset.Tables[0].Rows.Count; i++)
{
ids.Add(mydataset.Tables[0].Rows[i]["id"].ToString());
}
答案 1 :(得分:0)
你声明了数组但没有初始化它。您可以同时进行声明和初始化,如下所示;
string[] ids = mydataset.Tables[0].Rows.Cast<DataRow>().Select(r=>r["id"].ToString()).ToArray();