首页 > 解决方案 > 优化 IEnumerable 的迭代

问题描述

我有一个名为“MergeString”的方法,它采用 IEnumerable 字符串列表的参数。该方法的工作是遍历列表并将列表合并为一个大字符串并返回它。

是否有可能比我已经使用的 foreach 循环更快地做到这一点?

以下代码是如何使用 foreach 循环进行迭代的简单实现。

    public static string MergeStrings(IEnumerable<string> strs)
    {

        var toReturn = "";

        foreach (var str in strs)
        {
            toReturn += str;
        }

        return toReturn;
    }

下面的代码是运行代码的主要方法。

    static void Main(string[] args)
    {
        Console.WriteLine("Filling array: ");

        var strs = Enumerable.Range(0, 40000).Select(s => s.ToString());


        var before = DateTime.Now;

        var output = StringHelpers.MergeStrings(strs);  

        var after = DateTime.Now;

        Console.WriteLine($"Length: {output.Length}");
        Console.WriteLine("Elapsed time: " + (after - before).TotalMilliseconds);

        Console.ReadLine();
    }

标签: c#optimization

解决方案


推荐阅读