Изменено (теперь он принимает любой не null string
и любой положительный chunkSize
) Решение Константина Спирина :
public static IEnumerable<String> Split(String value, int chunkSize) {
if (null == value)
throw new ArgumentNullException("value");
else if (chunkSize <= 0)
throw new ArgumentOutOfRangeException("chunkSize", "Chunk size should be positive");
return Enumerable
.Range(0, value.Length / chunkSize + ((value.Length % chunkSize) == 0 ? 0 : 1))
.Select(index => (index + 1) * chunkSize < value.Length
? value.Substring(index * chunkSize, chunkSize)
: value.Substring(index * chunkSize));
}
Тесты:
String source = @"ABCDEF";
// "ABCD,EF"
String test1 = String.Join(",", Split(source, 4));
// "AB,CD,EF"
String test2 = String.Join(",", Split(source, 2));
// "ABCDEF"
String test3 = String.Join(",", Split(source, 123));
Поскольку все мы заключаем официальный сайт в кавычки, и он говорит,
, Реактивный ранец Android обеспечивает серию несвязанных библиотек, не связанных с какой-то конкретной версией Android, давая разработчикам способ поддерживать более новые функции на более старых версиях операционной системы Android. В дополнение к обратной совместимости Реактивный ранец обещает помочь Вам стать более сделанными, с меньшим количеством кода, путем обеспечения шаблона для справлений с повторяющимися задачами как управление жизненным циклом приложения.
Поэтому теперь позволяют нам повредить это в остатки, это просто говорит 2 вещи
Те, которые расстраивают библиотеки “All com.android.support, должны использовать ту же самую версию specification”, сообщения должны стать вещью прошлого теперь.
, Но это - когда Вы пользуетесь библиотеками Androidx и не поддерживаете.
существуют другие причины также для расстраивания JetPack отдельно, давайте обсудим их также..
Первоначально, название каждого пакета указало на минимальный уровень API, поддерживаемый тем пакетом, например, поддержкой-v4. Однако версия 26.0.0 Вспомогательной библиотеки увеличила минимальный API до 14, поэтому сегодня многие имена пакета не имеют никакого отношения к минимальному поддерживаемому уровню API. Когда поддержка-v4 и пакеты поддержки-v7 оба имеют минимальный API 14, it’s легкий видеть, почему люди запутываются!. Таким образом, теперь с AndroidX, этот беспорядок исчезает.
С текущим соглашением о присвоении имен (поддерживают), это также isn’t ясный, какие пакеты связываются операционной системой Android, и которые упаковываются с Вашим application’s APK (Набор Пакета Android). Для разрешения этого беспорядка все несвязанные библиотеки будут перемещены в AndroidX’s androidx.* пространство имен, в то время как андроид.* иерархия пакета будет зарезервирована для пакетов, которые поставлются с операционной системой Android. Просто высказывание, теперь на, андроид.* будет зарезервирован для андроида связанные с операционной системой пакеты, таким образом, эти пакеты так или иначе запустятся с андроида.* имя пакета, В ТО ВРЕМЯ КАК androidx.* будет теперь зарезервирован для связанного с разработкой приложений материала.
Кроме этого, Вы имеете:
Поэтому теперь, Реактивный ранец является только именем, данным надмножеству этих компонентов, androidx и других инструментов.