将不同的值传递给LINQ查询的SELECT NEW部分

时间:2014-01-22 15:27:04

标签: linq linq-to-entities linq-to-objects

我正在从查询中创建一个结果对象,如下所示:

var result = from m in MyTable
             join r in some_more_tables
             select new ResultSummmary
             {
                  Description = m.Description,
                  start_date = r.start_dat
             };

但是在我开始查询和SELECT NEW之前基于某些条件,我希望能够展示我在其Description字段中放置的内容,目前它总是m.Description但是有时我希望它是一个像“医院”这样的静态文本,其余时间我希望它是m.Description,就像现在一样。

我们怎样才能以灵活的方式编写?

2 个答案:

答案 0 :(得分:2)

让我们假装条件存储在名为condition的变量中。这将允许您编写以下

var result = from m in MyTable
         join r in some_more_tables
         select new ResultSummmary
         {
              Description = condition ?  m.Description : "Hospital",
              start_date = r.start_dat
         };

答案 1 :(得分:1)

 select new ResultSummmary
             {
                  Description = someBool ? m.Description : "Hospital",
                  start_date = r.start_dat
             };