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

时间:2019-11-05 05:11:36

标签: c#

我有两个类的properdata和pprosecnddata都具有属性    我想从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";
    }
}

3 个答案:

答案 0 :(得分:1)

您不能直接访问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"});

然后您就可以使用上述方法对列表进行迭代

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:-1)

实际上我已经知道答案了,您还没有创建用于初始化列表的构造函数。

我猜您会收到对象null引用错误?

创建构造函数以初始化您的列表,应该没事。

但是将来,请发布错误消息(不是整个堆栈,而是实际错误),以及 all 重复该问题所需的代码。否则,您将冒着删除问题的风险

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

另外,您正在访问列表中的项目,例如该项目就是该项目(应该更像:ProperData.Secnd.elementAt(0).product,请注意,模型中的“产品”与代码大写。