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

C#基于if语句在linq列表中返回值,c#,linq,if-statement,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(); 我想要什么 这个列表的工作方式很好,但现在我想稍

我拥有的

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

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();
var list=data.Where(!t.Area.HasValue | | t=>t.Area==response.Area)。选择(t=>newstatus()
{
PK=t.PK,
面积=t.面积,

说明,//您可以通过以下方式使用三元运算符:

Area = t.Area,
Description = t.Area.HasValue ? a : b, 

但我是赢家:哇,我在一旁站了5分钟,因为他们都是一样的,我将根据我的小RNG代码确定赢家,所以你们都处于相同的公平条件=)但是+1作为奖励=)@VadzimSavenok RNG的意思是?祝贺你,你是我的小RNG代码的赢家!而且似乎你也需要排名;)谢谢!有趣的是,我们同时发布了相同的答案。谢谢=)但RNG决定支持他。让他有一些初学者运气的荣耀吧!=)
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
   PK = t.PK,
   Area = t.Area,
   Description = t.Area.HasValue ? a : b
   //other stuff
}).ToList();
var list = data.Where(!t.Area.HasValue || t => t.Area == response.Area).Select(t => new Status()
{
   PK = t.PK,
   Area = t.Area,
   Description = t.Area.HasValue ? a : b, 
   OtherStuff = t.OtherStuff
}).ToList();