我有以下LINQ查询:如何在LINQ中更改一个没有新投影的值?
var source = from node in MyNods
select new
{
Id = node.Id,
Name = node.Name,
ParentId = node.ParentId, // Nullable
};
在上面的查询中,ParentId
可为空。现在我需要一个匹配第一个但有小变化的新结果,如果ParentId
为空,我希望它是0
。
我写了这个:
var source2 = from s in source
select new
{
Id = s.Id,
Name = s.Name,
ParentId = s.ParentId ?? 0, // Just change null values to 0
};
我可以实现用一个简单的方法(我的意思是没有新的投影)?
编辑:新投影与第一个投影相同,并且两个ParentId
都可以为空。
Eric Lippert解释了为什么在LINQ中没有内置的方法来实现它:http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx – 2011-03-17 12:57:19