将一个列表添加到另一个为空或不为空的列表
Add a List to another List that is either null or not null
考虑下面的代码段。我需要在循环中调用方法 CreateOrAddToLists()
。第一次调用该方法时,两个列表 casedata.Cases
和 casedata.Documents
将为空,因此我可以通过将 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
的构造函数中实例化两个列表对象,然后您可以确保它们不会为空,您可以只使用 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);
考虑下面的代码段。我需要在循环中调用方法 CreateOrAddToLists()
。第一次调用该方法时,两个列表 casedata.Cases
和 casedata.Documents
将为空,因此我可以通过将 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
的构造函数中实例化两个列表对象,然后您可以确保它们不会为空,您可以只使用 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);