在LINQ select中连接两个字段

时间:2013-09-20 20:44:17

标签: c# linq concatenation

我有一个下拉列表,ddCourse,我填充了以下LINQ查询:

var db = new DataClasses1DataContext();
ddCourse.DisplayMember = "COURSE_TITLE";
ddCourse.ValueMember = "COURSE_ID";
ddCourse.DataSource = db.COURSE_MASTERs.OrderBy(c => c.COURSE_TITLE)
                                       .Select(c => new { c.COURSE_ID, c.COURSE_TITLE })
                                       .ToList();

但是,还有另一个领域,我想在我的选择中连接到COURSE_TITLE字段。所以,我希望我的选择看起来像:

.Select( c => new {c.COURSE_ID, c.CIN + " " + c.COURSE_TITLE})

唯一的问题是,显然,这并不是它的完成方式。我基本上想要用c.COURSE_TITLE加入c.CIN(并且中间有一个空格)。有人可以给我一些关于如何实现这个目标的指示吗?

我想这样做的原因是,现在,下拉列表中出现的唯一内容是课程标题​​。我希望在显示时将课程ID号(CIN)连接到它。

编辑:为了澄清,我使用了Linq-to-SQL。

3 个答案:

答案 0 :(得分:13)

使用此

.Select( c => new {c.COURSE_ID, COURSE_TITLE =string.Format("{0} {1}" ,c.CIN ,c.COURSE_TITLE)})

答案 1 :(得分:5)

您需要为anonymous members命名:

.Select( c => new {COURSE_ID = c.COURSE_ID, COURSE_TITLE = c.CIN + " " + c.COURSE_TITLE})

答案 2 :(得分:3)

像这样写Select

.Select( c => new {c.COURSE_ID, COURSE_TITLE = c.CIN + " " + c.COURSE_TITLE})

匿名类型需要指定其列名,以防无法推断它们。

对于c.COURSE_ID C#非常聪明,可以在匿名类型中生成名为COURSE_ID的成员。对于表达式c.CIN + " " + c.COURSE_TITLE,它不能。