Рассмотрите приведенный ниже фрагмент кода. Мне нужно вызвать метод 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
? Могу ли я сделать это в строке кода?
Что именно ты после этого? Мне кажется хорошо? – James
'(casedata.Documents ?? (casedata.Documents = новый список())). AddRange (документы);' - но я бы не сказал, что это лучше или лучше. Сокращение кода не обязательно делает его лучше или умнее - сделать его читабельным более важным, потому что вы тот, кто будет его поддерживать в будущем. –
Rhumborl