hso*_*sop 1 c# null list addrange
考虑下面的代码段.我需要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);
}
}
Run Code Online (Sandbox Code Playgroud)
以前有更好或更简洁的方法进行空检查AddRange吗?我可以在代码行吗?
在用于CaseData实例化两个列表对象的构造函数中,您将确信它们不会为null,您可以使用它AddRange.
public CaseData()
{
Cases = new List<Case>();
Documents = new List<Document>();
}
Run Code Online (Sandbox Code Playgroud)
更清楚的是:
casedata.Cases = casedata.Cases ?? new List<Case>();
casedata.Cases.AddRange(cases);
casedata.Documents = casedata.Documents ?? new List<Document>();
casedata.Documents.AddRange(documents);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3651 次 |
| 最近记录: |