C# 为什么不是';这个foreach循环不起作用吗?
我创建了一个类实体,并尝试使用数组填充它的一个属性,方法如下:C# 为什么不是';这个foreach循环不起作用吗?,c#,asp.net,sql,C#,Asp.net,Sql,我创建了一个类实体,并尝试使用数组填充它的一个属性,方法如下: Usuario[] arrayusers = new Usuario[contador]; int i = 0; foreach (DataRow dr in dt.Rows) { arrayusers[i].Celular = dr["CELULAR"].ToString(); i++; } 它返回错误“对象引用未设置为对象的实例”。为什么呢 我试着改变我为字符串数组创建的类,它成功了 string[] stri
Usuario[] arrayusers = new Usuario[contador];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
arrayusers[i].Celular = dr["CELULAR"].ToString();
i++;
}
它返回错误“对象引用未设置为对象的实例”。为什么呢
我试着改变我为字符串数组创建的类,它成功了
string[] stringx = new string[contador];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
stringx[i] = dr["CELULAR"].ToString();
i++;
}
这是一篇It学期论文 您只定义了一个数组
arrayusers
,它的所有元素都设置为null。您必须实例化每个数组项:
foreach (DataRow dr in dt.Rows)
{
arraysers[i] = new Usuario(); //<<<<<<<<<< here
arrayusers[i].Celular = dr["CELULAR"].ToString();
i++;
}
foreach(数据行中的数据行dr)
{
arraysers[i]=new Usuario();//您确定arrayusers
和dt.Rows
的大小相同吗?另外,我看不到您在哪里初始化arrayusers[i]
直到分配完它之后,它才会是null
大概应该是这样的:
string[] stringx = new string[contador];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(stringx[i].Length); //<<<< Exception here
stringx[i] = dr["CELULAR"].ToString();
i++;
}
Usario tmp = new Usario();
tmp.Celular = dr["CELULAR"].ToString();
arrayUsers[i] = tmp;
一个比喻可能是一个可以容纳300张纸的三环活页夹(数组)。你仍然需要购买(创建)在活页夹中要写的纸。你能试着用断点调试它,看看什么是空的吗?那么:我试图给一个空元素的属性赋值,对吗?因此出现了错误消息…我知道了!谢谢你,哈比卜。是的,我想我的代码的第一行不足以实例化数组…谢谢!