Как преобразовать значение nullable guid в guid? Мое намерение состоит в том, чтобы преобразовать список нулевых значений Guid в guid list. как я могу это сделать?
Как преобразовать guid? направить
Ответ 1
Используйте оператор ??
:
public static class Extension
{
public static Guid ToGuid(this Guid? source)
{
return source ?? Guid.Empty;
}
// more general implementation
public static T ValueOrDefault<T>(this Nullable<T> source) where T : struct
{
return source ?? default(T);
}
}
Вы можете сделать это:
Guid? x = null;
var g1 = x.ToGuid(); // same as var g1 = x ?? Guid.Empty;
var g2 = x.ValueOrDefault(); // use more general approach
Если у вас есть список и не фильтровать нули, вы можете написать:
var list = new Guid?[] {
Guid.NewGuid(),
null,
Guid.NewGuid()
};
var result = list
.Where(x => x.HasValue) // comment this line if you want the nulls in the result
.Select(x => x.ValueOrDefault())
.ToList();
Console.WriteLine(string.Join(", ", result));
Ответ 2
Используйте это:
List<Guid?> listOfNullableGuids = ...
List<Guid> result = listOfNullableGuids.Select(g => g ?? Guid.Empty).ToList();
Это самый простой способ. Нет необходимости в методе расширения для чего-то простого...
Ответ 3
свойство Nullable<T>.value
?
Ответ 4
type?
не подходит для Nullable<type>
. См. документацию для Nullable.