LINQ查询中使用的C#三元运算符

t_plusplus

是否可以使用三元运算符来反映此逻辑?

if (a = 1)
{
    somevalue = "hello";
} 
else if (a = 2)
{
    someValue = "world";
}
else if (a = 3)
{
    someValue = "hellWorld";
}

我在LINQ查询中执行以下操作:

using (var data = new DAL())
{
    var result = data.Holidays.AsNoTracking()
                 .Where(x => x.RequesterId == userId)
                 .Select(x => new HolidayModel
                 {
                     HolidayId = x.HolidayId,
                     FromDate = x.FromDate,
                     ToDate = x.ToDate,
                     AuthorisationStatus = x.InternalHolidayStatus == 1 ?
                         HolidayAuthStatus.Pending :
                         HolidayAuthStatus.Rejected,
                     DateModified = x.ModifiedDate
                 }).ToList();

    return Json(result.ToDataSourceResult(request));
}

HolidayAuthStatus是一个枚举,其中具有三个值(Pending(1),Authorised(2)和Rejected(3));并且我希望在分配的值时在代码中反映出这一点AuthorisationStatus

卡米尔(Kamil Budziewski)

换成这个

AuthorisationStatus = (HolidayAuthStatus)x.InternalHolidayStatus

如果您的HolidayAuthStatus的整数值与InternalHolidayStatus值匹配,则它将起作用。三元运算符在这里看起来很可怕。如果您的状态码不匹配,最好让函数接受int status并返回HolidayAuthStatus

HolidayAuthStatus GetStatus(int status)
{
    if(status == 1) return HolidayAuthStatus.Pending;
    if(status == 2) return HolidayAuthStatus.Authorised;
    if(status == 3) return HolidayAuthStatus.Rejected;
    return HolidayAuthStatus.Unknown; // for e.g.
}

并像这样使用它:

AuthorisationStatus = GetStatus(x.InternalHolidayStatus)

编辑:

正如@James所说,该方法仅在Linq-to-object中有效,而在Linq-to-entity中无效

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 C# 中使用三元运算符显示数组内容

来自分类Dev

Linq的三元运算符

来自分类Dev

在python中使用三元运算符?

来自分类Dev

在视图中使用三元运算符

来自分类Dev

在宏中使用三元运算符

来自分类Dev

在javascript中使用三元运算符

来自分类Dev

C#与C ++三元运算符

来自分类Dev

在PHP语法错误的MYSQL查询中使用三元运算符

来自分类Dev

如何在SQL查询中使用速记三元运算符php?

来自分类Dev

C#三元运算符?:效率

来自分类Dev

C# LINQ - 将嵌套的三元运算符重写为辅助函数

来自分类Dev

C ++三元运算符使用

来自分类Dev

是否可以在目标C的getter的延迟实例化中使用三元运算符?

来自分类Dev

在Objective-C中使用带有三元运算符的块

来自分类Dev

在C ++流中使用三元运算符可以吗?

来自分类Dev

在C ++流中使用三元运算符可以吗?

来自分类Dev

在 C++ 中使用三元运算符总是返回错误条件

来自分类Dev

C#子表达式中的OR使用三元运算符

来自分类Dev

使用C#三元条件运算符进行强制转换

来自分类Dev

在 lambda 表达式中使用三元条件运算符时,Linq select 返回错误结果

来自分类Dev

LINQ查询中的三元运算符未按预期工作

来自分类Dev

LINQ查询中的三元运算符未按预期工作

来自分类Dev

C vs C ++中的三元运算符

来自分类Dev

如何在使用三元运算符的if语句中使用AND

来自分类Dev

如何使用@Model(TimeSpan)在剃须刀中使用三元运算符?

来自分类Dev

我可以在定义中使用三元运算符来反对使用if吗?

来自分类Dev

如何在使用三元运算符的if语句中使用AND

来自分类Dev

为什么C#三元运算符不能与委托一起使用?

来自分类Dev

ngClass可以在Angular 2中使用三元运算符吗?

Related 相关文章

  1. 1

    在 C# 中使用三元运算符显示数组内容

  2. 2

    Linq的三元运算符

  3. 3

    在python中使用三元运算符?

  4. 4

    在视图中使用三元运算符

  5. 5

    在宏中使用三元运算符

  6. 6

    在javascript中使用三元运算符

  7. 7

    C#与C ++三元运算符

  8. 8

    在PHP语法错误的MYSQL查询中使用三元运算符

  9. 9

    如何在SQL查询中使用速记三元运算符php?

  10. 10

    C#三元运算符?:效率

  11. 11

    C# LINQ - 将嵌套的三元运算符重写为辅助函数

  12. 12

    C ++三元运算符使用

  13. 13

    是否可以在目标C的getter的延迟实例化中使用三元运算符?

  14. 14

    在Objective-C中使用带有三元运算符的块

  15. 15

    在C ++流中使用三元运算符可以吗?

  16. 16

    在C ++流中使用三元运算符可以吗?

  17. 17

    在 C++ 中使用三元运算符总是返回错误条件

  18. 18

    C#子表达式中的OR使用三元运算符

  19. 19

    使用C#三元条件运算符进行强制转换

  20. 20

    在 lambda 表达式中使用三元条件运算符时,Linq select 返回错误结果

  21. 21

    LINQ查询中的三元运算符未按预期工作

  22. 22

    LINQ查询中的三元运算符未按预期工作

  23. 23

    C vs C ++中的三元运算符

  24. 24

    如何在使用三元运算符的if语句中使用AND

  25. 25

    如何使用@Model(TimeSpan)在剃须刀中使用三元运算符?

  26. 26

    我可以在定义中使用三元运算符来反对使用if吗?

  27. 27

    如何在使用三元运算符的if语句中使用AND

  28. 28

    为什么C#三元运算符不能与委托一起使用?

  29. 29

    ngClass可以在Angular 2中使用三元运算符吗?

热门标签

归档