C# Linq-如果是负数,则将int设置为0
我正在使用Linq初始化一个类对象,我需要做的是将值设置为0,如果我发现另一个类对象的值是负数,下面是现有代码:C# Linq-如果是负数,则将int设置为0,c#,linq,C#,Linq,我正在使用Linq初始化一个类对象,我需要做的是将值设置为0,如果我发现另一个类对象的值是负数,下面是现有代码: public void fillObject(FillData dataToAdd) { Data data = new Data(); Data.Items = dataToAdd.maindata .select( x => new Data.ItemsStruct {
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'
使用
您可以使用:
parameter1inItemsStruct = Math.Max(0, x.intno1),
parameter1inItemsStruct = Math.Max(0, x.intno2)
您可以使用:
parameter1inItemsStruct = Math.Max(0, x.intno1),
parameter1inItemsStruct = Math.Max(0, x.intno2)
类似这样的内容:
parameter1inItemsStruct=x.intno1<0?0:x.intno1
类似这样的内容:参数1nitemssstruct=x.intno1<0?0:x.intno1
试试:
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
});
}
public void fillObject(FillData dataToAdd)
{
数据=新数据();
Data.Items=dataToAdd.main数据
.select(x=>newdata.ItemsStruct
{
参数1initemssstruct=x.intno1Try:
public void fillObject(FillData dataToAdd)
{
数据=新数据();
Data.Items=dataToAdd.main数据
.select(x=>newdata.ItemsStruct
{
parameter1inItemsStruct=x.Intno1Anymous函数不限于一个表达式。x=>new Something(x)
也可以写成x=>{return new Something(x);}
,这种表示法允许使用多个语句/表达式。谢谢,这对我未来的开发也有帮助:)匿名函数不限于一个表达式。x=>newsomething(x)
也可以写成x=>{returnnewsomething(x);}
,这种表示法允许使用多个语句/表达式。谢谢,这对我未来的开发也有帮助:)啊哈,谢谢,所以它将0与变量进行比较并返回最大和,在这种情况下,0总是大于负数,但任何大于0的值都将是可接受的值?@DanHall它返回较大的值(不是和)。如果您查看实现,它是:val1>=val2?val1:val2
感谢您的帮助:)谢谢,因此它将0与变量进行比较并返回最大和,在这种情况下,0总是大于负数,但任何大于0的值都将是可接受的值?@DanHall它返回较大的值(而不是和)。如果您查看实现,它是:val1>=val2?val1:val2
谢谢您的帮助:)