c# - 将 switch 语句重构为枚举
问题描述
我想清理我的代码并使其更简单。现在我有一个返回和 int 值的方法。
private int ReturnMyValue(string line)
{
switch (line)
{
case "ST":
return 1;
case "KG":
return 2;
case "M":
return 3;
case "M2":
return 4;
(...)
}
}
在此之前,我从一个文件中读取了一个字符串数组,所以它看起来像这样:
var myString = "";
var splittedString = myString.Split('|');
var iWantThatValue = ReturnMyValue(splitted[0]);
有没有办法有这样的枚举:
private enum Value
{
ST = 1,
KG = 2
}
并以某种方式摆脱该方法?
我希望我在等于“ST”iWantThatValue
时为 1 。splitted[0]
解决方案
您可以将字符串解析为枚举,例如
public enum Value
{
ST = 1, // start at 1
KG,
M,
M2
}
var value = (Value)Enum.Parse(typeof(Value), "KG");
并获得整数值...
var intValue = (int)val;
推荐阅读
- pine-script - 检查 TradingView pinescript 中的烛台模式之一?
- flutter - 在颤振中初始化window.navigator.getUserMedia时出错
- python - Python 最佳实践:是否将全局已知变量显式传递给函数?
- r - 如何在最近邻分析 (QGIS) 中解释最近邻指数 (NNI) 和 Z 分数
- python - keras load_model 给出 TypeError: int() argument 'NoneType'
- android - 如何打开 jetpack DataStore 文件 (.preferences_pb)
- f# - 为什么在词法分析器规范中对换行符和空格的处理不同?
- php - 如何通过包含在数组中的 meta_key 对 WordPress 帖子进行排序?
- python - CSV 文件被 pandas 误读
- python - 将新值附加到 Python 字典中的同一键