如何将可空的guid转换为guid?我的目的是将可以为空的Guid列表转换为guid列表。我怎么能这样做?
答案 0 :(得分:24)
使用??
运算符:
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));
答案 1 :(得分:9)
Nullable<T>.value
属性?
答案 2 :(得分:9)
使用此:
List<Guid?> listOfNullableGuids = ...
List<Guid> result = listOfNullableGuids.Select(g => g ?? Guid.Empty).ToList();
这是最简单的方法。对于那些简单的东西,不需要扩展方法......
答案 3 :(得分:1)
type?
是Nullable<type>
的缩写。请参阅the documentation for Nullable。
答案 4 :(得分:1)
new Guid(yourGUID.ToString())
还有可能的解决方案。
答案 5 :(得分:-1)
是“ id”是“向导”吗?
Guid.Parse(id.ToString())
获取Guid null并通过将Guid null转换为String来创建Guid