我有一个两类的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"的大写与您的代码。