c# 从字符串转换为特殊类型 - “存在显式转换”
本文关键字:存在 显式转换 类型 字符串 转换 | 更新日期: 2023-09-27 17:56:42
Outputs.RunParams.RunAlgorithm = Convert.ChangeType(AlgString,typeof(RunAlgorithmConstants));
我正在尝试将程序的运行参数设置为特定值,但 AlgString 是一个字符串,我需要它是 RunAlgorithmConstants 类型。AlgString 是一个字符串,它是在以前的脚本中直接从类型RunAlgorithmConstants转换为字符串,将其保存到文本文件,从该文本文件读取并将文本设置为AlgString的结果。
当我运行此代码时,出现此错误:
不能将类型"对象"隐式转换为"运行算法常量"。存在显式转换(您是否缺少强制转换?
命名空间很好。我可以写
if (AlgString.Equals("Example1"))
{
Outputs.RunParams.RunAlgorithm = RunAlgorithmConstants.Example1
}
对于 RunAlgorithmConstants 可能的每个可能值,但我想知道是否有更简单的方法。
编辑:
int LineNumber = Inputs.LineNumber;
var lines = File.ReadAllLines(Inputs.LoadLocation);
string line = lines[LineNumber];
{char[] delimiterChars = {','};
string[] words = line.Split(delimiterChars);
words[30] = AlgString
Enum.Parse 就是你要找的:
Outputs.RunParams.RunAlgorithm = (RunAlgorithmConstants) Enum.Parse(typeof(RunAlgorithmConstants), AlgString);