Mar*_*in 0 c# linq nullable iqueryable
我有and和IQueryable<int>and 在较早的处理阶段IQueryable<int?>使用a从中删除了空值Where()。我现在希望UNION()在两个可查询对象之间执行a ,但是因为一个是可空类型,而另一个则不能。
我该如何解决?
如果您的IQueryable<int?>对象没有null,那么您应该可以IQueryable<int>使用.Select()调用将其“转换”为。
int?[] withNulls = new int?[] { 1, null, 0, 2, 3, 4, null, 1, 6 };
int[] noNulls = new int[] { 10, -4, 30, 6, 7, 8, -2, -3 };
// This is the step you need.
var removedNulls = withNulls.AsQueryable().Where(n => n.HasValue).Select(n => n.Value);
var union = removedNulls.Union(noNulls);
Run Code Online (Sandbox Code Playgroud)
打印removedNulls和union给我
1 0 2 3 4 1 6
1 0 2 3 4 6 10 -4 30 7 8 -2 -3
Run Code Online (Sandbox Code Playgroud)