首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在变量内创建if语句

在变量内创建if语句
EN

Stack Overflow用户
提问于 2015-06-10 08:43:47
回答 4查看 97关注 0票数 1

我试图在下面的代码中创建一个'if‘语句:

代码语言:javascript
复制
    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
    };

示例:

代码语言:javascript
复制
if (quoteItem.Chassis.Longitudinal == "SCH100")
    Stockitem = quoteItem.BodyType.Longitudinal;

我是否可以在var qisg中创建这样的方法?

编辑:这就是代码现在的样子

代码语言:javascript
复制
    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被分配给一个产品的例子:

代码语言:javascript
复制
    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
    };
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-10 08:52:07

正如其他人所说,条件运算符是完美的,如果它是一个简单的如果this..then .否则就会有别的情况。

如果条件比较复杂,则可以创建一个检查条件并返回适当值的方法。所以就像..。

代码语言:javascript
复制
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.LongitudinalStockItem类型的。考虑到您最后的代码片段显示了StockItem有一个StockCode,我认为您可能需要这样的东西.

代码语言:javascript
复制
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
};
票数 4
EN

Stack Overflow用户

发布于 2015-06-10 08:45:56

您可以使用条件三值算子

运算符可用作if...else语句的快捷方式。它通常被用作较大表达式的一部分,其中if...else语句会很尴尬。

代码语言:javascript
复制
StockItem = (quoteItem.Chassis.Longitudinal == "SCH100" ?
  quoteItem.BodyType.Longitudinal : null),

该表达式的格式解释如下:

代码语言:javascript
复制
test ? expression1 : expression2
  • 测试
    • 任何布尔表达式。

  • expression1
    • 如果测试为真则返回的表达式。可能是逗号表达式。

  • expression2表达式
    • 如果测试为假,则返回。可能是逗号表达式。

票数 4
EN

Stack Overflow用户

发布于 2015-06-10 08:45:55

尝试使用条件运算符(https://msdn.microsoft.com/en-us/library/ty67wk28.aspx):

代码语言:javascript
复制
StockItem = quoteItem.Chassis.Longitudinal == "SCH100" ? quoteItem.BodyType.Longitudinal : null,
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30751344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档