代码之家  ›  专栏  ›  技术社区  ›  Ashkan Mobayen Khiabani

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

  •  -3
  • Ashkan Mobayen Khiabani  · 技术社区  · 6 年前

    我有一个阿拉伯文的字符串,我试图将其中的数值改为英文,其余的保持不变。

    string x = "یکشنبه ۲۳ دی ۱۳۹۷ ۱۰:۳۰:۰۰"
    

    这就是我转换它的方式:

    x = string.Join("", x.Select(a => a >= 'Û°' || a <= 'Û¹' ? (char)(48 + a - 'Û°') : a));
    

    有趣的是,应该将数字字符转换为英语的部分工作正常,但返回字符本身(未触及)的部分发生了变化。这是此转换的结果:

    ←エニィヌ怒23怒ッ怒1397怒10梁30梁00

    1 回复  |  直到 6 年前
        1
  •  2
  •   opewix    6 年前

    你的身体状况发生了变化 || && 替换 Û± Û°

    x = string.Join("", x.Select(a => a >= 'Û°' && a <= 'Û¹' ? (char)(48 + a - 'Û°') : a));