我正在使用Linq初始化一个类对象,如果我发现另一个类对象的值是一个减号,我需要设置的值为0,这是现有的代码:
public void fillObject(FillData dataToAdd)
{
Data data = new Data();
Data.Items = dataToAdd.maindata
.select(
x => new Data.ItemsStruct
{
parameter1inItemsStruct = x.intno1,
parameter1inItemsStruct = x.intno2
});
}
intno1
或intno2
可以是任何值,但如果值是负数,我想将其设置为0.
有谁知道如何在LINQ
中实现这一目标?我不想做的是直接引用对象中的每个参数并检查/更改其值,我只想用Linq
检查/更改值'inline'。
答案 0 :(得分:4)
您可以使用Math.Max
:
parameter1inItemsStruct = Math.Max(0, x.intno1),
parameter1inItemsStruct = Math.Max(0, x.intno2)
答案 1 :(得分:1)
{
parameter1inItemsStruct = x.intno1 > 0 ? x.intro1 : 0,
parameter1inItemsStruct = x.intno2 > 0 ? x.intro2 : 0
}
答案 2 :(得分:0)
尝试:
public void fillObject(FillData dataToAdd)
{
Data data = new Data();
Data.Items = dataToAdd.maindata
.select(x => new Data.ItemsStruct
{
parameter1inItemsStruct = x.intno1<0?0:x.intno1,
parameter1inItemsStruct = x.intno2<0?0:x.intno2
});
}
答案 3 :(得分:-1)
这样的事情:parameter1inItemsStruct = x.intno1 < 0 ? 0 : x.intno1