我有以下代码行。
List<ModelsView> ModelsData
ModelsData= (from l1 in data
select new ModelsView()
{
Id = l1.Id,
Name = l1.Name,
Age = l1.Age,
AgePlusTen = Age+ 10
}).OrderBy(i => i.PortiaId).ToList();
她可以看到,我正在使用linq将数据转换为ModelsData。我没有遇到任何问题。当我添加'AgePlusTen'字段时,只会出现问题。在这里,我正在做Age + 10,而Age是在此之前添加的一个字段。它不允许我做Age + 10。
它说Age在当前环境中不存在。谁能告诉我如何添加字段并根据之前添加的字段操作它们
答案 0 :(得分:1)
编译器回答了你的问题。不,你不能。
为什么你不能只使用AgePlusTen = l1.Age+ 10
?应该可以正常工作。
答案 1 :(得分:1)
List<ModelsView> ModelsData
ModelsData= (from l1 in data
let agePlusTen = l1.Age + 10 // add this
select new ModelsView()
{
Id = l1.Id,
Name = l1.Name,
Age = l1.Age,
AgePlusTen = agePlusTen // use it here
}).OrderBy(i => i.PortiaId).ToList();
let
允许您存储子表达式的结果。它甚至可以用于定义本身可以查询的可枚举类型。
您可以在此处找到更多相关信息:link