基于if语句在linq列表中返回C#返回值

时间:2016-07-14 19:15:21

标签: c# linq if-statement

我有什么

我有一个列表,只有在满足某些条件时才会执行

var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
   PK = t.PK,
   Area = t.Area,
   Description = t.Description
   //other stuff
}).ToList();

我想要什么

此列表的工作方式很好,但现在我想略微修改它。对于其中一个变量,我想运行一个if-else语句,该变量将是if-else语句执行的返回结果

var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
   PK = t.PK,
   Area = t.Area,
   Description,    //<---------------returns the value of executed if-else statement
                                         //if (t.Area.HasValue) Description = a;
                                         //else Description = b;
   OtherStuff = t.OtherStuff
}).ToList();

我的问题是:我在哪里放置if-else条件才能正确执行?

我尝试了什么

我尝试将if-else语句放在两个逗号之间的实际变量位置。

我尝试使用temp变量,其结果将被返回,但我不希望在我的列表中有这个临时变量。

我在Where()中尝试了额外的条件,然后才意识到实际执行该列表是一组条件。

搜索SO和互联网并没有让我想要尝试的结果(希望,我不只是使用错误的搜索条件)。

3 个答案:

答案 0 :(得分:2)

您可以按照以下方式使用三元运算符:

save

答案 1 :(得分:2)

.footer{
width: 100%;
}

.footer-content{
position: fixed;
bottom: 0;
width: 100%;
z-index: 0;
}
.content{
z-index: 9999 !important;
background-color: #fff;
position: relative;
margin-bottom: 600px; //height of my full footer
}

答案 2 :(得分:1)

Order.order("
  CASE SUBSTRING(order_number FROM '^NYN?')
    WHEN 'NY' THEN 0
    WHEN 'NYN' THEN 1
    ELSE 2
  END,
  order_number
")