我有一个下拉列表,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。
答案 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
,它不能。