有一个更好的方法吗?
foreach (var line in lines)
{
bool t01 = line.Model.ToLower() == model;
bool t02 = line.Authority.ToLower() != "unknown";
bool t101 = line.Type.ToLower() == "adcn";
bool t102 = line.Type.ToLower() == "adcn/adv";
bool t103 = line.Type.ToLower() == "bn";
bool t104 = line.Type.ToLower() == "book";
bool t105 = line.Type.ToLower() == "cancel";
bool t106 = line.Type.ToLower() == "cir";
bool t107 = line.Type.ToLower() == "coord sht";
bool t108 = line.Type.ToLower() == "cre";
bool t109 = line.Type.ToLower() == "ddr";
bool t110 = line.Type.ToLower() == "dl";
if (t01 && t02)
if ((t101 || t102 || t103 || t104 || t105 || t106 || t107 || t108 || t109 || t110))
Console.WriteLine(line);
}
Run Code Online (Sandbox Code Playgroud)
它实际上升到t139.因为简洁而剪裁了它.
Jon*_*eet 14
听起来你需要一个HashSet<string>类型:
static readonly HashSet<string> ValidTypes = new HashSet<string>
(StringComparer.OrdinalIgnoreCase)
{
"adcn", "adcn/adv", "bn" ...
};
if (line.Model.Equals(model, StringComparison.OrdinalIgnoreCase) &&
!line.Authority.Equals("unknown", StringComparison.OrdinalIgnoreCase) &&
validTypes.Contains(line.Type))
{
Console.WriteLine(line);
}
Run Code Online (Sandbox Code Playgroud)
这也比单独比较每个项目的字符串更快.请注意,虽然我已经OrdinalIgnoreCase在上面使用过,但这可能不是你真正想要的 - 你可能想要CurrentCultureIgnoreCase或者InvariantCultureIgnoreCase.
(请注意,为了进行区分大小写的比较低的套管柱是一个坏主意-尤其是如果你只是使用默认语言环境做的.例如,如果你小写"邮件"和您的电流. locale是土耳其语,你不会得到"邮件".)
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |