在一个班级列表中添加一个以上班级列表

时间:2019-05-14 05:33:20

标签: c# list add

我必须将一个以上的列表加入一个列表中。这个问题似乎很常见,但是我的问题可能完全不同。 因为,我有3节课。我已经基于这些类创建了3个列表

List<QTM> lstQTM = new List<QTM>();
List<QTMMain> lstQTMmain = new List<QTMMain>();
List<QTMStats> lstQTMStats = new List<QTMStats>();

这些类仅指示存储在该列表中的属性。 我创建了另一个列表

 List<QTMList> lstQTMlist = new List<QTMList>();

此QTMList也是一个类。这个班有

public class QTMList{
        public List<QTM> QTM { get; set; }
        public List<QTMStats> QTMStats { get; set; }
        public List<QTMMain> QTMMain { get; set; }
}

现在,我尝试将lstQTM,lstQTMmain和lstQTMStats添加到lstQTMlist列表中。所以我用

qtmList = new QTMList();
qtmList.QTMMain(lstQTMmain);
qtmList.QTM(lstQTM);
qtmList.QTMStats(lstQTMStats);

lstQTMlist.Add(qtmList);

我得到的错误是

  

C#不可发音的'lstQTMlist.lstQTMmain'成员不能像   方法

以此类推。

您能不能请任何人给我提示以解决我的问题?

4 个答案:

答案 0 :(得分:4)

您应该使用进行设置。

"_index": "testrest",
 "_type": "testrest",

答案 1 :(得分:1)

您不能像方法一样调用属性,消息非常清晰。

qtmList = new QTMList();

例如,您不能执行此操作:  qtmList.QTMMain(lstQTMmain);

您可以像这样将1stQtMain添加到QTMMain

qtmList.QTMMain.AddRange(lstQTMmain)

您使用AddRange将对象列表添加到列表中。

答案 2 :(得分:0)

该错误是由您使用QTMList类的字段的方式引起的。您正在使用 它们就像方法一样,即在方括号内传递参数。这就是您调用方法的方式。 为了将值分配给类的字段或属性,您只需使用=运算符。 因此,您的代码可以简化为:

qtmList = new QTMList();
qtmList.QTMMain = new List<QTMMain>();
qtmList.QTM = new List<QTM>();
qtmList.QTMStats = new List<QTMStats>();

或者您可以在QTMList初始化时初始化列表:

public class QTMList{
    public List<QTM> QTM { get; set; } = new List<QTM>();
    public List<QTMStats> QTMStats { get; set; } = new List<QTMStats>();
    public List<QTMMain> QTMMain { get; set; } = new List<QTMMain>();
}

答案 3 :(得分:-1)

您可以尝试以下方法:

qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;

这样做,新列表(QTMMain,...)包含已分配列表(lstQTMmain,...)的项目的副本。您可以通过将以下构造函数添加到QTMList来简化代码:

qtmList = new QTMList();
qtmList.QTMMain = new List<QTMStats>(lstQTMmain);
qtmList.QTM = new List<QTM>(lstQTM);
qtmList.QTMStats = new List<QTMMain>(lstQTMStats);

如果您不想复制列表内容,则应将列表分配给属性。

public QTMList(List<QTM> qtm, List<QTMStats> qtmstats, qtmmain)
{
    QTMMain = new List<QTMStats>(lstQTMmain);
    QTM = new List<QTM>(lstQTM);
    QTMStats = new List<QTMMain>(lstQTMStats);
}