将多个 class 列表添加到一个 class 列表中
Adding more than one class list into one class list
我必须将多个列表加入一个 list.This 问题似乎很常见,但我的问题可能完全不同。
因为,我有 3 classes。我根据 classes
创建了 3 个列表
List<QTM> lstQTM = new List<QTM>();
List<QTMMain> lstQTMmain = new List<QTMMain>();
List<QTMStats> lstQTMStats = new List<QTMStats>();
这些 classes 仅表示存储在该列表中的属性。
我创建了另一个列表
List<QTMList> lstQTMlist = new List<QTMList>();
这个QTMList也是一个class。这个class有
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# Non-invocable 'lstQTMlist.lstQTMmain ' member cannot be used like a
method
等等。
你能请任何人给我任何提示来解决我的问题吗?
您应该用于设置。
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);
通过这样做,新列表(QTMMain,...)包含已分配列表(lstQTMmain,...)的项目的副本。您可以通过向 QTMList 添加以下构造函数来简化代码:
public QTMList(List<QTM> qtm, List<QTMStats> qtmstats, qtmmain)
{
QTMMain = new List<QTMStats>(lstQTMmain);
QTM = new List<QTM>(lstQTM);
QTMStats = new List<QTMMain>(lstQTMStats);
}
如果您不想要列表内容的副本,您应该将列表分配给属性。
qtmList = new QTMList();
qtmList.QTMMain = lstQTMmain;
qtmList.QTM = lstQTM;
qtmList.QTMStats = lstQTMStats;
错误是由您使用 QTMList
class 字段的方式引起的。您正在使用
他们就像他们是方法,即在括号内传递参数。这就是您调用方法的方式。
为了给字段或 class 的 属性 赋值,您只需使用 =
运算符。
因此,您的代码可以简化为:
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>();
}
你不能像方法一样调用属性,消息很清楚。
qtmList = new QTMList();
例如,您不能这样做:
qtmList.QTMMain(lstQTMmain)
;
您可以像这样将 1stQtMain
添加到 QTMMain
:
qtmList.QTMMain.AddRange(lstQTMmain)
您使用 AddRange
将对象列表添加到列表中。
我必须将多个列表加入一个 list.This 问题似乎很常见,但我的问题可能完全不同。 因为,我有 3 classes。我根据 classes
创建了 3 个列表List<QTM> lstQTM = new List<QTM>();
List<QTMMain> lstQTMmain = new List<QTMMain>();
List<QTMStats> lstQTMStats = new List<QTMStats>();
这些 classes 仅表示存储在该列表中的属性。 我创建了另一个列表
List<QTMList> lstQTMlist = new List<QTMList>();
这个QTMList也是一个class。这个class有
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# Non-invocable 'lstQTMlist.lstQTMmain ' member cannot be used like a method
等等。
你能请任何人给我任何提示来解决我的问题吗?
您应该用于设置。
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);
通过这样做,新列表(QTMMain,...)包含已分配列表(lstQTMmain,...)的项目的副本。您可以通过向 QTMList 添加以下构造函数来简化代码:
public QTMList(List<QTM> qtm, List<QTMStats> qtmstats, qtmmain)
{
QTMMain = new List<QTMStats>(lstQTMmain);
QTM = new List<QTM>(lstQTM);
QTMStats = new List<QTMMain>(lstQTMStats);
}
如果您不想要列表内容的副本,您应该将列表分配给属性。
qtmList = new QTMList();
qtmList.QTMMain = lstQTMmain;
qtmList.QTM = lstQTM;
qtmList.QTMStats = lstQTMStats;
错误是由您使用 QTMList
class 字段的方式引起的。您正在使用
他们就像他们是方法,即在括号内传递参数。这就是您调用方法的方式。
为了给字段或 class 的 属性 赋值,您只需使用 =
运算符。
因此,您的代码可以简化为:
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>();
}
你不能像方法一样调用属性,消息很清楚。
qtmList = new QTMList();
例如,您不能这样做:
qtmList.QTMMain(lstQTMmain)
;
您可以像这样将 1stQtMain
添加到 QTMMain
:
qtmList.QTMMain.AddRange(lstQTMmain)
您使用 AddRange
将对象列表添加到列表中。