可以在linq查询中为匿名类型的成员分配数据类型吗?

时间:2010-05-05 20:45:18

标签: asp.net linq anonymous-types

如果我有一个linq查询,可以在下面创建匿名类型:

                    select new
                    {
                        lf.id,
                        lf.name,
                        lf.desc,
                        plf.childId
                    };

是否可以为其中一个成员分配特定类型?具体来说,我想使lf.id成为一个null-int而不是int ...

2 个答案:

答案 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属性可以为空,那么你也应该可以在匿名类型中将其置为可空。