#c# #tuples
#c# #кортежи
Вопрос:
У меня есть это:
Tuple<double?, double?, double?, int, int, int> R1;
и нужно ли это:
Tuple<double, double, double, int, int, int> R1a;
Значения элементов с нулевым значением никогда не равны null. Как это можно сделать?
Комментарии:
1. каким будет значение первого элемента, если
double?
равно null? или это когда-нибудь произойдет?
Ответ №1:
Вы можете использовать это:
var R1a = new Tuple<double, double, double, int, int, int>
(R1.Item1.Value, R1.Item2.Value, R1.Item3.Value, R1.Item4, R1.Item5, R1.Item6);
Но только если вы можете быть уверены, что все 3 дубля имеют значение или вы получаете исключение во время выполнения
В качестве альтернативы, если вы хотите иметь 0 для нулевых значений, используйте GetValueOrDefault()
вместо Value
Ответ №2:
Вы можете использовать GetValueOrDefault
метод a Nullable<T>
, который вернет значение элемента или значение по умолчанию для типа, если это null
:
var R1a = new Tuple<double, double, double, int, int, int>(
R1.Item1.GetValueOrDefault(), R1.Item2.GetValueOrDefault(),
R1.Item3.GetValueOrDefault(), R1.Item4, R1.Item5, R1.Item6);
Комментарии:
1. Downvoter, пожалуйста, прокомментируйте, что в этом не полезного, чтобы его можно было улучшить.