Для проектов, где это актуально, я часто определяю метод Расширения ToStringOrNull
следующим образом:
public static string ToStringOrNull(this object o) {
return o == null ? null : o.ToString();
}
Чтобы избежать интеллигентного загрязнения, если у вас есть ограниченный набор типов, для которых такой ToStringOrNull
полезно, вы могли бы (и я иногда это делаю) избегать добавления расширения к object
и вместо этого скопировать и вставить несколько копий для соответствующих типов.Функция легко написана как однострочная, поэтому использование кода для обхода этого дублирования является излишним.
Затем, если вы хотите заменить строку null
на некоторый текст-заполнитель, используйте объединение нулейоператор.
например
string[] myArray = new [] {
o.id, o.number.ToStringOrNull(), o.whatever, ...
};// .Select(s=>s??"NULL").ToArray(); //uncomment to replace null with "NULL"