【发布时间】:2017-01-21 05:30:57
【问题描述】:
是否可以在 linq Select 中包含或排除列?
var numberOfYears = Common.Tool.NumberOfYear;
var list = users.Select(item => new
{
Id = item.Id,
Name= item.Name,
City= Item.Address.City.Name,
STATUS = Item.Status,
if(numberOfYears == 1)
{
Y1 = item.Records.Y1,
}
if(numberOfYears == 2)
{
Y1 = item.Records.Y1,
Y2 = item.Records.Y2,
}
if(numberOfYears == 3)
{
Y1 = item.Records.Y1,
Y2 = item.Records.Y2,
Y3 = item.Records.Y3,
}
}).ToList();
}
我的想法是我只想显示 Y1,Y2,Y3 是否有值
【问题讨论】:
-
您可以对每个属性使用三元运算符。结果对象必须相同,因此每个对象都必须具有 3 个
Yx属性。只需为它们使用一些默认值或null值。 -
如果你不介意使用Dynamic Linq是可能的
-
你将如何使用
list变量? -
为什么不使用 .Where(x => ...) ?
-
用户输入的年数和模型之间没有联系。它基本上是获取历史记录,用户可以选择时间段。也许设计很糟糕,但我不能改变它,所以我必须照原样接受。
标签: c# linq select dynamic properties