c# - 具有多个参数的三元语句

标签 c# dictionary conditional-statements ternary-operator

我有一个字典定义为:

Dictionary<string, string> typeLookup = new Dictionary<string, string>();

我想根据用户选择的语言向字典中添加一个键/值,在我的例子中可以找到:

Request.Cookies["language"].Value == "ja-JP" //if true, Japanese, if false, English

我可以只做 if/elses,但我很好奇是否有某种方法可以让它工作:

typeLookup.Add((Request.Cookies["language"].Value == "ja-JP") ? "6","中間" : "6","Q2");

因为它是一个字典,所以需要指定两个字符串。这不起作用,给我“语法错误,':'预期”。这是一个失败的原因,还是我需要更改/添加一些东西才能使这个想法奏效?

最佳答案

由于条件的双方使用相同的 key ,你可以作弊:

typeLookup.Add("6", (Request.Cookies["language"].Value == "ja-JP") ? "中間":"Q2");

然而,在一般情况下,您最终会得到一个相当丑陋、重复的语句:

typeLookup.Add(
    (Request.Cookies["language"].Value == "ja-JP") ? "6" : "7"
,   (Request.Cookies["language"].Value == "ja-JP") ? "中間" : "Q2"
);

关于c# - 具有多个参数的三元语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13041600/

相关文章:

c# - 3D/2D 自上而下的 View 使用什么样的投影和相机?

python - 在嵌套的python dict中查找所有出现的键

c++ - 此 C/C++ if() 语句的计算结果是否为 TRUE?

javascript - 中断应该在条件 block 内,即我们的外部吗?

javascript - 如何将 PHP 和 CSS 的条件与 JavaScript 结合起来

c# - 如何轮询目录中的文件

javascript - 如何将数组中的值从 asp.net 更改为 javascript

python - 根据字典检查数据帧值(作为键,值元组)的矢量化方法?

python - 使用 Python 展平和解压字典

c# - CheckBox 的删除线字体样式