C# 将多个类列表添加到一个类列表中

C# 将多个类列表添加到一个类列表中,c#,list,add,C#,List,Add,我必须将多个列表合并到一个列表中。这个问题似乎很常见,但我的问题是可能会完全不同。 因为,我有三节课。我根据这些类创建了3个列表 List<QTM> lstQTM = new List<QTM>(); List<QTMMain> lstQTMmain = new List<QTMMain>(); List<QTMStats> lstQTMStats = new List<QTMStats>(); qtmList = new

我必须将多个列表合并到一个列表中。这个问题似乎很常见,但我的问题是可能会完全不同。 因为,我有三节课。我根据这些类创建了3个列表

List<QTM> lstQTM = new List<QTM>();
List<QTMMain> lstQTMmain = new List<QTMMain>();
List<QTMStats> lstQTMStats = new List<QTMStats>();
qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;
我知道错误是

qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;
C#不可开票的“lstQTMlist.lstQTMmain”成员不能像 方法

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

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

您能给我一些提示来解决我的问题吗?

您应该使用设置

qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;
您可以尝试以下方法:

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

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

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

不能像方法那样调用属性,消息非常清楚

qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;
qtmList = new QTMList();
您不能这样做,例如:
qtmList.QTMMain(lstQTMmain)

qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;
您可以将
1stQtMain
添加到
qtmain
中,如下所示:

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

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

所有列表的长度都相同吗?@一般不,先生,这些长度是不同的,您可以这样分配:
qtmList.QTMMain=lstQTMmain还是必须克隆它(取消引用/创建重复值)?或者将新值添加到已存在的集合?@Jimi是正确的,我无法添加任何内容。消息会告诉您需要知道的一切。。。你像调用方法一样调用它,但它不是方法<代码>qtmList.QTM(lstQTM)这是无效的c#。。。你的其他电话也晚了一点去看球赛。。。但是你是对的,把这些列表分配给用户拥有的东西怎么样?你能解释一下为什么你的解决方案对OP有效,以帮助澄清为什么他们的解决方案不起作用;这会增加价值。
qtmList = new QTMList();
qtmList.QTMMain=lstQTMmain;
qtmList.QTM=lstQTM;
qtmList.QTMStats=lstQTMStats;