我正在尝试从查询中获取匿名对象:
var myList = from td in MyObjectList
select new
{
a = td.a,
b = td.b,
c = td.c,
name = (from r in contex.NewList
where r.aa == td.a && r.bb == td.b
select r.Name).ToList()
};
我希望名称具有 r.Name 值,因为我希望名称列表只包含一个元素。如果它包含 0 个元素,我希望名称的值为 NONE,如果超过 1 个元素,则应抛出异常或其他内容。
是否有可能实现这样的目标?感谢您的帮助。
最佳答案
代替 .ToList()
使用
.SingleOrDefault() ?? (td.a == 0 ? "XNone" : "None")
编辑:根据评论更改了答案。
此外,我建议不要将此类逻辑放入 Linq-to-SQL 中。有时这会导致大量未经优化的 SQL 代码,并且除非您不介意某些性能问题,否则会导致 SQL 执行速度大大降低。
关于c# - LINQ 中的匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860864/