Нулевая проверка для получения значений свойств с помощью отражения - PullRequest
0 голосов
/ 14 сентября 2018

Здесь я пытаюсь добавить общий список значений в словарь.

Ниже приведен класс DocDetails

public class DocDetails
{
   public string DocId { get; set; }
   public string Description { get; set; }
   public string Category { get; set; }
}

Я получаю список DocDetails в docDetailsList объекте. Используя это, я получаю каждый элемент DocDetails, получаю имя и значение свойства, а затем добавляю его в словарь.

Dictionary<string, List<object>> docDict = new Dictionary<string, List<object>>();

  foreach (var doc in docDetailsList)
     {
          var dict = doc.GetType().GetProperties().ToDictionary(
            m => m.Name, m => new List<object>()
             {
                m.GetValue(doc, null).ToString()
             });
         docDict.Add(dict);
      }

При попытке получить значение свойства в этой строке m.GetValue(doc, null).ToString() получить исключение, если значение равно нулю. Как я могу проверить это, даже если его ноль, мне нужно добавить это имя свойства в список с пустым значением. Может кто-нибудь помочь мне здесь, пожалуйста

1 Ответ

0 голосов
/ 14 сентября 2018

Вместо:

m.GetValue(doc, null).ToString()

Вы можете проверить, является ли оно нулевым, перед вызовом ToString():

m.GetValue(doc, null) != null ? m.GetValue(doc, null).ToString() : null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...