将列表添加到另一个列为null或非null的列表

时间:2016-01-25 11:21:08

标签: c# list null addrange

考虑下面的代码段。我需要在循环中调用方法CreateOrAddToLists()。第一次调用该方法时,两个列表casedata.Casescasedata.Documents将为null,因此我可以通过将cases分配给casedata.Cases来填充:

casedata.Cases = cases;

在随后调用CreateOrAddToLists()时,casedata.Casescasedata.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之前进行空检是否有更好或更简洁的方法?我可以在代码行吗?

2 个答案:

答案 0 :(得分:7)

CaseData的构造函数中实例化两个列表对象,那么您将确信它们不会为空,您只能使用AddRange

public CaseData()
{
    Cases = new List<Case>();
    Documents = new List<Document>();
}

答案 1 :(得分:4)

更清楚:

Error:(24, 13) Failed to resolve: com.github.ppamorim:PrismView:0.3