Нет причин повторно брать первый элемент из одной и той же неизменной коллекции. Просто возьмите первый элемент из коллекции и затем работайте с этим извлеченным объектом:
var element = db.Datatable.FirstOrDefault();
Это уже значительно упрощает ваш код и повышает производительность (потому что вам не нужно повторять по коллекции для каждого свойства):
if(element.D1 != null)
{
//do code
}
// and so on...
Непонятно точно , почему вам необходимо убедиться, что каждое поле содержит ненулевое значение. Вы никогда не публиковали код, показывающий, как вы собираетесь использовать эти значения.
//here i would add the value (0 for null, 1 for data) to an array, which i would handle in the view
Как правило, лучше просто убедиться, что ваше представление может обрабатывать нули , поскольку это означает, что вы не Вам не нужно беспокоиться о том, что ваш код выполняется, когда определенное значение равно нулю.
Если это невозможно, тогда все же проще просто преобразовать значения null
в значение по умолчанию, отличное от нуля. Это означает, что вам по-прежнему не нужно беспокоиться о пустых значениях (после того, как вы их преобразовали), поскольку у вас больше не будет нулевых значений.
Простой способ сделать это - использовать оператор объединения нулей, например,
var firstName = element.D1 ?? String.Empty;
. Это гарантирует, что null
значения будут заменены значением по умолчанию (которое вы можете указать, я просто выберите здесь пустую строку, но вы можете выбрать все, что захотите).
Также обратите внимание, что вам даже не нужно делать это для ненулевых значений, таких как int
, так как по умолчанию они равны 0
автоматически.
//here i would add the value to an array
Зачем использовать массив вместо объекта? Непонятно, почему вы не можете вручную обрабатывать каждое свойство (и его значение) вместо того, чтобы передавать объект сам по себе, что, несомненно, является лучшим OOP способом передачи данных.
Это противоречит в то же время хочет обрабатывать все данные вручную, а также не хочет обрабатывать все эти данные.