是否有一个C#构造就像switch允许控制进入下一级别的语句一样?我有这样的事情:
public static IEnumerable<string> SeverityOrHigher(string severity)
{
var result = new List<string>();
switch (severity.ToUpper())
{
case "ALL":
result.Add("ALL");
case "DEBUG":
result.Add("DEBUG");
case "INFO":
result.Add("INFO");
case "WARN":
result.Add("WARN");
case "ERROR":
result.Add("ERROR");
case "FATAL":
result.Add("FATAL");
case "OFF":
result.Add("OFF");
default:
break;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
......显然在C#中不起作用,(Control cannot fall through from one case label...)但在我看来它应该是这样的.我知道它预计会有中断,但这不会给我提供我正在寻找的数据流.有什么办法可以按照我喜欢的方式实现?
nem*_*esv 10
在你的情况下,你可以用一点LINQ来模拟"坠落的情况":
public static IEnumerable<string> SeverityOrHigher(string severity)
{
var result = new List<string>()
{ "ALL", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" };
return result.SkipWhile(l => l != severity.ToUpper()).ToArray();
}
Run Code Online (Sandbox Code Playgroud)