如果我有一个linq查询,可以在下面创建匿名类型:
select new
{
lf.id,
lf.name,
lf.desc,
plf.childId
};
是否可以为其中一个成员分配特定类型?具体来说,我想使lf.id成为一个null-int而不是int ...
答案 0 :(得分:5)
不确定这是否可行而不尝试,但你能做到这一点:
select new
{
(int?)lf.id,
}
迫使施法者?
编辑:看起来不行,但我能够做到这一点:
List<int> il = new List<int>(){1,2,3};
var z = from i in il.AsQueryable<int>()
select new
{
Foo = (int?)i
};
这很好。
答案 1 :(得分:0)
这可能行不通。在匿名类型中,使用属性的数据类型。因此在新类型中,id的数据类型将用于在新类型中创建属性id。
如果'lf'中的id属性可以为空,那么你也应该可以在匿名类型中将其置为可空。