0

我有一个数据集,其中一张表有 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 数组中。它只是抛出一个异常,比如对象引用,没有将实例设置为对象的实例。但是当我使用调试模式来检查我的代码时,我的“id”列值被获取但没有存储在 ids 数组中。谁能帮忙?我错过了什么?谢谢...

4

2 回答 2

0

您已经声明了数组引用,但实际上并未创建数组,您必须对其进行初始化。您需要使数组的大小等于或大于预期元素。

string[] ids = new string[100];

您最好使用列表,关于此处解释的两者之间的区别值得一读。

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());
}
于 2013-10-05T07:23:17.760 回答
0

你声明了数组但没有初始化它。您可以在下面进行声明和初始化;

string[] ids = mydataset.Tables[0].Rows.Cast<DataRow>().Select(r=>r["id"].ToString()).ToArray();
于 2013-10-05T07:36:24.457 回答