Неэффективный код String.Concat?

Я исследовал String.Concat: (Reflector)

enter image description here

очень странно:

есть массив значений,

они создают НОВЫЙ МАССИВ, для которого позже отправляют его в ConcatArray.

Вопрос:

Почему они создали новыймассив? они имели значенияс первого места...

редактировать

код:

public static string Concat(params string[] values)
{
    if (values == null)
    {
        throw new ArgumentNullException("values");
    }
    int totalLength = 0;
    string[] strArray = new string[values.Length];
    for (int i = 0; i < values.Length; i++)
    {
        string str = values[i];
        strArray[i] = (str == null) ? Empty : str;
        totalLength += strArray[i].Length;
        if (totalLength < 0)
        {
            throw new OutOfMemoryException();
        }
    }
    return ConcatArray(strArray, totalLength);
}
24
задан Royi Namir 14 May 2012 в 09:18
поделиться