考虑这个简化的示例查询:
dt = (
from O in ...
...
select new
{
O.A,
B = 0
}).ToList().ToDataTable()
.ToDataTable()
来自Convert generic List/Enumerable to DataTable?
假设表O
没有名为B
的属性,但我希望有一个名为B
的列,其值将在稍后填写。这可以在B
获取发送给它的数字值时正常工作,但我实际上想要发送int?
个值,目前如果它发送null
则会崩溃。
有没有办法选择新列(例如B
),使其成为可空类型?
答案 0 :(得分:2)
你可以这样做,
var testNull = (from student in studentList
select new
{
RollNo = default(int?),
Name = student.Name
}).ToList();
但更好的是我们可以创建具体类型,而不是依赖于基于值的匿名类型。: - )
答案 1 :(得分:1)
由于推断出匿名类型成员的类型,因此它推断正确的事情:B = (int?)null
。
不确定你的意思"稍后填写"。如果您希望B
是可变的,则需要创建一个类。
答案 2 :(得分:1)
尝试:
select new
{
O.A,
B = (int?)0
}