我有这台LINQ可以完成我想要的工作
var query = context.MasterTemplateOfficeTag
.Join(context.Tag, x => x.TagId, y => y.Id, (x, y) => new { y.Name })
.ToList();
尽管我的问题是我希望LINQ返回list<String>
,因为Select语法=> new { y.Name })
的类型为string
。因此,如果编译器知道返回类型,为什么我不能使用list<String>
?
我想要这样的东西
List<String> name = context.MasterTemplateOfficeTag
.Join(context.Tag, x => x.TagId, y => y.Id, (x, y) => new { y.Name })
.ToList();
这可能吗?
谢谢
答案 0 :(得分:6)
好吧
new { y.Name }
是具有单个string
字段(Name
)的匿名对象。放下new {...}
包装并返回string
:
List<String> name = context
.MasterTemplateOfficeTag
.Join(
context.Tag,
x => x.TagId,
y => y.Id,
(x, y) => y.Name ) // <- Now we return string: y.Name
.ToList();
答案 1 :(得分:3)
new { y.Name })
创建一个具有Name
属性的匿名对象。
您只需返回y.Name
就可以使用List<string>
答案 2 :(得分:2)
返回字符串而不是返回匿名对象
List<String> name = context.MasterTemplateOfficeTag
.Join(context.Tag, x => x.TagId, y => y.Id, (x, y) => y.Name)
.ToList();