在LINQ中选择多个没有连接的列

时间:2016-11-12 16:20:06

标签: c# linq

假设您有一个简单的查询,例如:

SELECT p.name, p.age, c.course, c.lecture
FROM person p, college c;

这样的事情可以在LINQ中实现吗?我试图列出这些列中的任何内容并迭代它们的原因。

2 个答案:

答案 0 :(得分:5)

是。它被称为交叉连接:

var result = (from p in person
              from c in college
              select new { p.Name, p.Age, c.Course, c.Lecture });

在方法语法中:

var result = person.SelectMany(p => 
                       college.Select(c => new { p.Name, p.Age, c.Course, c.Lecture });

答案 1 :(得分:2)

除了Gilad Green的回答,您还可以使用lambda执行相同的操作:

var testLinq2 = person.SelectMany(c => college, (p, c) => 
new { p.Name, p.Age, c.Course, c.Lecture });