在LINQ select中连接两个字段

Kev*_*vin 5 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();
Run Code Online (Sandbox Code Playgroud)

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

.Select( c => new {c.COURSE_ID, c.CIN + " " + c.COURSE_TITLE})
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:为了澄清,我正在使用Linq-to-SQL.

Thi*_*a H 14

用这个

.Select( c => new {c.COURSE_ID, COURSE_TITLE =string.Format("{0} {1}" ,c.CIN ,c.COURSE_TITLE)})
Run Code Online (Sandbox Code Playgroud)

  • 我认为string.Format仅在对象已经加载到内存中时才有效.我可能错了,但我很确定实体框架会扼杀它,并且发布的代码看起来可能是EF. (5认同)

Sou*_*eAK 6

您需要为匿名成员命名:

.Select( c => new {COURSE_ID = c.COURSE_ID, COURSE_TITLE = c.CIN + " " + c.COURSE_TITLE})
Run Code Online (Sandbox Code Playgroud)