LINQ中的匿名类型

gru*_*ber 2 c# linq anonymous-types .net-4.0 linq-to-sql

我正试图从查询中获取匿名对象:

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()
             };
Run Code Online (Sandbox Code Playgroud)

我希望名称有r.Name值因为我希望名称列表只包含一个元素.如果它包含0个元素,我想命名为NONE,如果超过1个元素则应抛出异常或其他东西.

是否有可能实现这样的目标?感谢帮助.

Eup*_*ric 7

而不是.ToList()使用

.SingleOrDefault() ?? (td.a == 0 ? "XNone" : "None")
Run Code Online (Sandbox Code Playgroud)

编辑:根据评论更改了anwer.

另外,我建议不要将这样的逻辑放入Linq-to-SQL中.有时这会导致大量高度未经优化的SQL代码,除非你不介意一些性能问题,否则会导致SQL执行速度慢得多.