将列表添加到另一个为空或不为空的列表
本文关键字:列表 另一个 添加 | 更新日期: 2023-09-27 18:31:49
考虑下面的代码段。我需要在循环中CreateOrAddToLists()
调用该方法。第一次调用该方法时,两个列表casedata.Cases
和casedata.Documents
将为 null,因此我可以通过将cases
分配给casedata.Cases
来填充,如下所示:
casedata.Cases = cases;
在随后对 CreateOrAddToLists() 列表的任何调用中,casedata.Cases
和 casedata.Documents
都不会为空,我可以使用 AddRange() 向列表中添加新数据:
casedata.Cases.AddRange(cases);
var casedata = new CaseData(); //contains lists to get populated
private void CreateOrAddToLists()
{
var cases = new List<Case>(); //gets data with from database
var documents = new List<Document>(); //gets data with from database
if (casedata.Cases == null)
{
casedata.Cases = cases;
}
else
{
casedata.Cases.AddRange(cases);
}
if (casedata.Documents == null)
{
casedata.Documents = documents;
}
else
{
casedata.Documents.AddRange(documents);
}
}
有没有更好或更整洁的方法在AddRange
之前进行空检查?我可以在代码行中完成吗?
在用于CaseData
实例化两个列表对象的构造函数中,您可以确保它们不会为 null,您可以只使用 AddRange
.
public CaseData()
{
Cases = new List<Case>();
Documents = new List<Document>();
}
它更清楚:
casedata.Cases = casedata.Cases ?? new List<Case>();
casedata.Cases.AddRange(cases);
casedata.Documents = casedata.Documents ?? new List<Document>();
casedata.Documents.AddRange(documents);