【问题标题】:Class including list类包括列表
【发布时间】:2022-01-13 02:59:14
【问题描述】:

当我在列表中分配值时,它的说对象未设置为对象的实例任何帮助,当我尝试分配列表中的值时,我可以从其他服务中检索它的创建问题

public class exam
{
    public string Name { get; set; }
    public string Age { get; set; }
    public string RollNo { get; set; }

    public List<Subject> subject{get; set;}
 }


 public class Subject
 {
    public string SubjectName{ get; set;}
    public string SubjectPartNo{ get; set; }        
 }


 exam ex = new exam()

 ex.Name = "john"
 ex.Age = 22
 ex.RollNo = 13
 ex.subject.SubjectName = "English"
 ex.subject.SubjectPartNo = 1 
 

【问题讨论】:

  • 您声明了您的 subject 属性。但是你永远不会实例化它。将声明更改为List&lt;Subject&gt; subject{get; set;} = new List&lt;Subject&gt;();。哦等等,你不能这样做:ex.subject.SubjectName = "English"; subject 属性是一个列表。您需要创建一个新的Subject 并将其添加到列表中
  • 我声明新列表 List sub = new List() 和 sub .Add(new subject() { SubjectName="English", SubjectPartNo = "tow" });然后我想附加到类 ex.subject = sub ,这是问题

标签: c# list class object properties


【解决方案1】:

subject 是一个对象,它被定义为Subject 类型的列表。像所有其他对象一样,它需要首先实例化才能使用。它在Exam(另一个对象)内部的事实并没有改变这一点。

因此,您可以在这样的属性分配期间执行此操作。

public List<Subject> subject { get; set; } = new List<Subject>();

或者你可以创建一个构造函数并在那里实例化它

public exam()
{
    subject = new List<Subject>();
}

所以现在您有一个空列表,这是解决问题的第一部分。但是您仍然试图错误地为其分配值。

subjectSubject 的列表,所以这意味着我们只能向其中添加Subject 对象。

首先创建一个新的 Subject 对象并为其添加值。 (也可以内联完成)。这里我们创建两个;

Subject sub1 = new Subject();
sub1.SubjectName = "English";
sub1.SubjectPartNo = "1";

Subject sub2 = new Subject();
sub2.SubjectName = "Maths";
sub2.SubjectPartNo = "2";

然后将这些添加到您的列表中;

exam  ex = new exam();

ex.Name = "john"
ex.Age = "22";
ex.RollNo = "13";
ex.subject.Add(sub1);
ex.subject.Add(sub2);

现在您有一个 exam 对象和 2 个 Subjects

顺便说一句:您有许多属性,例如年龄,它们被定义为字符串,但您正试图向它们添加整数值。它们需要根据正确的数据类型正确定义。不要因为现在“更容易”而将所有内容都设置为字符串,它会在以后给您带来问题。

【讨论】:

  • 感谢您的回答。有没有其他方法可以做到这一点,我必须使用 for 循环添加主题,如 2 或 4 或 10
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多