Angular - расширение подобъекта $ resource с помощью пользовательских методов

В сочетании ответов голубей + Konstatin ...

static IEnumerable<string> WholeChunks(string str, int chunkSize) {
    for (int i = 0; i < str.Length; i += chunkSize) 
        yield return str.Substring(i, chunkSize);
}

Это будет работать для всех строк, которые могут быть разделены на целые числа кусков, и в противном случае генерирует исключение.

Если вы хотите поддерживать строки любой длины, вы можете использовать следующий код:

static IEnumerable<string> ChunksUpto(string str, int maxChunkSize) {
    for (int i = 0; i < str.Length; i += maxChunkSize) 
        yield return str.Substring(i, Math.Min(maxChunkSize, str.Length-i));
}

Однако OP явно указал, что он not нуждается в этом ; это несколько длиннее и труднее читать, немного медленнее. В духе KISS и YAGNI я бы пошел с первым вариантом: возможно, это самая эффективная реализация, и она очень короткая, читаемая и, что важно, создает исключение для несоответствующего ввода.

37
задан migajek 16 June 2013 в 14:37
поделиться