c# - 在 C# 中是否有更简单的方法来执行此 if 语句

标签 c#

我有以下内容:

if (model.PartitionKey.Substring(2, 2) == "05" || 
    model.PartitionKey.Substring(2, 2) == "06")

我有更多这样的。有没有更简洁的方法来编写代码,而不必重复 model.PartitionKey 两次?

最佳答案

这个怎么样:

if (new string[]{"05", "06"}.Contains(model.PartitionKey.Substring(2, 2))
    // ...

这让您可以自由地将要查找的字符串保存在一个漂亮的列表中...

var lookingFor = new string[]{"05", "06"};
var substring = model.PartitionKey.Substring(2, 2);
if (lookingFor.Contains(substring))
{
    // ...
}

如果您要查找的字符串列表超过两个,这将有很大帮助...此外,您可以将其添加到一个集合 ( HashSet<string> ) 中以提高查找效率 - 但请先测试一下,因为开销会吞噬 yield 。

关于c# - 在 C# 中是否有更简单的方法来执行此 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358004/

相关文章:

c# - 在 C# WPF 应用程序中使用 ffmpeg 编辑 m4b 元数据

javascript - C# 和 Cryptojs 的 TripleDESCryptoServiceProvider 给出了不同的结果

c# - 使用 C# 哪个更快 - System.Convert.ToString( objThatIsString) 或 (string)objThatIsString?

c# - 防止 Entity Framework 在数据库中创建外键

c# - 监视 Outlook 启动/关闭

c# - 使用 C# 在一天内获取服务器重启计数?

c# - 内存流中的电子邮件附件出错,但仅在第一次发送后发生

c# - C# 中的正则表达式 - 如何仅替换 Match 中的一个特定组?

c# - 我应该在这里使用什么而不是 ExecuteScalar?

c# - 如何告诉 ASP.NET 不要在请求中插入控件的值?