-1 c#
我想switch case用于下面的代码。这是可能的,如果是,如何?
private IEnumerable<string> GetRowValues(DataRow dr)
{
foreach (DataColumn col in DataResult.Columns)
yield return replaceSpecialChar(dr[col].ToString());
}
private string replaceSpecialChar(string text)
{
if (text.Contains("<"))
{
text = text.Replace("<", "<");
}
else if (text.Contains(">"))
{
text = text.Replace(">", ">");
}
else if (text.Contains("<=")){
text = text.Replace("<=", "≤");
}
else if (text.Contains(">="))
{
text = text.Replace(">=","≥");
}
return text;
}
Run Code Online (Sandbox Code Playgroud)
快速回答是,你不能switch用来做你想做的事,你也不应该尝试。在当前形式中,如果您的字符串包含多个符号,则只有第一个匹配的符号会被替换。
您还需要注意执行这些操作的顺序,因为它们<=最终会是<=. 您还缺少结尾的分号"<"和">"
你应该做的只是将多个调用链接到 .Replace()
private string replaceSpecialChar(string text)
{
return text
.Replace("<=", "≤")
.Replace(">=", "≥")
.Replace("<", "<")
.Replace(">", ">");
}
Run Code Online (Sandbox Code Playgroud)