c# - 如何优化下面的代码

标签 c# optimization

我怎样才能优化下面的代码,下面的代码包含一个对象数组,它可能有不同类型的类对象。我宁愿移动到 switch case 而不是 if...else... 我该怎么做。

object[] emailObjs;
for (int i = 0; i < emailObjs.Length; i++)
{
if (emailObjs[i] != null)
    {
       if (emailObjs[i] is Rfq)
       {

       }
       else if (emailObjs[i] is RfqBid)
       {

       }
       else if (emailObjs[i] is RfqProjManager)
       {

       }
    }
}

最佳答案

使用C# 7 pattern matching在带有类型检查的 switch 语句中:

switch (emailObjs[i])
{
    case Rfq r:
        {
            // use r;
            break;
        }
    case RfqBid r:
        {
            // use r;
            break;
        }
}

虽然这会显着压缩您的代码,但就性能而言,它不会比一堆 if 语句有太多优势,就像您的示例代码中那样。

关于c# - 如何优化下面的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43040501/

相关文章:

c# - 网络 API : get invalid fields from the model

c# - 检查值是否存在于 linq 中

c# - 正则表达式奇怪

optimization - 在什么类型的循环中最好在 CUDA 中使用 #pragma unroll 指令?

ruby-on-rails - 您如何查看 ruby​​ 中的调用堆栈示例?

c# - Visual Studio : Collecting the members of an interface in the same region

javascript - 需要优化的解决方案,并且不使用 jquery 函数

c++ - 如何优化此 Codewars c++ 代码?

mysql - MySQL 对 select ... in (ID1,ID2,ID3,...ID100) 的性能是否良好?

c# - 如何从pdb读取源路径