我试图在下面的代码中创建一个'if‘语句:
var qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(x => x.Name == "Longitudinals" && x.Section == TruckSection.Floor).First(),
StockItem = quoteItem.Chassis.Longitudinal, <<-- Here
Quantity = 2,
Length = globals.FloorCalculatedLength
};示例:
if (quoteItem.Chassis.Longitudinal == "SCH100")
Stockitem = quoteItem.BodyType.Longitudinal;我是否可以在var qisg中创建这样的方法?
编辑:这就是代码现在的样子
var qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(x => x.Name == "Longitudinals" && x.Section == TruckSection.Floor).First(),
StockItem = quoteItem.BodyType.Longitudinal == "SCH100" ? quoteItem.Chassis.Longitudinal : quoteItem.BodyType.Longitudinal,
Quantity = 2,
Length = globals.FloorCalculatedLength
};我得到了错误:
运算符'==‘不能应用于'TrucksWcf.Models.StockItem’和'string‘类型的操作数
对不起,有些答案太复杂了,我无法理解0_o
也是这里是另一个StockItem被分配给一个产品的例子:
qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(x => x.Name == "Cross Member" && x.Section == TruckSection.Floor).First(),
StockItem = db.StockItems.Where(x => x.StockCode == "SCH075").First(),
Length = globals.FloorCalculatedWidth
};发布于 2015-06-10 08:52:07
正如其他人所说,条件运算符是完美的,如果它是一个简单的如果this..then .否则就会有别的情况。
如果条件比较复杂,则可以创建一个检查条件并返回适当值的方法。所以就像..。
var qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(somecondition).First(),
StockItem = DetermineStockItem(valueToCheck)
Quantity = 2,
Length = globals.FloorCalculatedLength
};
public StockItem DetermineStockItem(object param)
{
// Include complex if and logic here.
return SomeStockItem;
}编辑:,我刚刚看到了您的错误消息更新。看起来quoteItem.BodyType.Longitudinal是StockItem类型的。考虑到您最后的代码片段显示了StockItem有一个StockCode,我认为您可能需要这样的东西.
var qisg = new QuoteItemSectionGroup
{
SectionGroup = db.SectionGroups.Where(x => x.Name == "Longitudinals" && x.Section == TruckSection.Floor).First(),
StockItem = quoteItem.BodyType.Longitudinal.StockCode == "SCH100" ? quoteItem.Chassis.Longitudinal : quoteItem.BodyType.Longitudinal,
Quantity = 2,
Length = globals.FloorCalculatedLength
};发布于 2015-06-10 08:45:56
您可以使用条件三值算子
运算符可用作if...else语句的快捷方式。它通常被用作较大表达式的一部分,其中
if...else语句会很尴尬。
StockItem = (quoteItem.Chassis.Longitudinal == "SCH100" ?
quoteItem.BodyType.Longitudinal : null),该表达式的格式解释如下:
test ? expression1 : expression2
发布于 2015-06-10 08:45:55
尝试使用条件运算符(https://msdn.microsoft.com/en-us/library/ty67wk28.aspx):
StockItem = quoteItem.Chassis.Longitudinal == "SCH100" ? quoteItem.BodyType.Longitudinal : null,https://stackoverflow.com/questions/30751344
复制相似问题