基类列表中的另一个类属性调用



我有一个两类的properdata和ppsecnddata,这两个类都有属性我想从properdata类列表对象访问产品属性。这怎么可能,下面是我的示例代码

pupilc class ProperData
{
public string code{get;set;}
public List<ProSecndData>Secnd{get;set;}
}
public class ProSecndData
{
public string product{get;set;}
}

我正试着把这样的房产称为

class Program
{
static void Main(string[] args)
{
ProperData.Secnd.Product = "Hello";
}
}

您不能直接访问Secnd的属性,因为它是一个列表

您需要迭代或选择List<Secnd>的索引

必须首先初始化Secnd,并且Secnd应在列表中包含项目

properData.Secnd = new List<ProSecndData>();

因此可以通过访问

foreach(var second in properData.Secnd)
{
second.product = "hello";
}
//or
for(var i = 0; i < proderData.Secnd.Count(); i++)
{
properData.Secnd[i].product = "hello";
}
//or
var index = //0-length of list;
properData.Secnd[index].product = "hello";

如果你想先有项目,那么先在你的Secnd列表上添加

properData.Secnd = new List<ProSecndData>();
properData.Secnd.Add(new ProSecndData{ product = "hello"});

然后您现在可以使用以上的方法来迭代列表

您试图将列表作为单个对象访问,这是不可能的。

您需要创建列表类的单个实例,然后可以在该单个实例中添加字符串。

properData.Secnd = new List<ProSecndData>();
ProSecndData proSecndData = new ProSecndData();
proSecndData.product = "Hello";
properData.Secnd.Add(proSecndData);

实际上我已经知道答案了,您还没有创建一个构造函数来初始化您的List。

我猜你得到了一个对象空引用错误?

创建构造函数来初始化您的列表,它应该是好的。

但在未来,请发布错误消息(不是整个堆栈,只是实际错误(以及所有重复该问题所需的代码。否则,您将面临问题删除的风险

(无论如何都应该删除它,因为它可能被视为"什么是空引用错误?"问题(

此外,您正在访问列表中的一个项目,就像列表中的项目一样(应该更像:ProperData.Secnd.elementAt(0).product,还请注意模型中"product"的大写与您的代码。

最新更新