Встроенные функции - каковы они точно по отношению к встроенному ключевому слову?

static IEnumerable<string> Split(string str, int chunkSize)
{
   IEnumerable<string> retVal = Enumerable.Range(0, str.Length / chunkSize)
        .Select(i => str.Substring(i * chunkSize, chunkSize))

   if (str.Length % chunkSize > 0)
        retVal = retVal.Append(str.Substring(str.Length / chunkSize * chunkSize, str.Length % chunkSize));

   return retVal;
}

Он корректно обрабатывает длину входной строки, не делящуюся на chunkSize.

Обратите внимание, что для изящного управления случаями краев может потребоваться дополнительный код (пустая или пустая строка ввода, chunkSize == 0).

37
задан user8469759 6 January 2017 в 13:48
поделиться