Я исследовал String.Concat: (Reflector)
очень странно:
есть массив значений,
они создают НОВЫЙ МАССИВ, для которого позже отправляют его в 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);
}