Сообщение CodeJam Roadmap от 16.03.2016 20:39
Изменено 17.03.2016 22:58 AndrewVK
New features
Расширения для строки
Расширения для XDocument
RequiredRoot, RequiredElement, RequiredAttributeElementValue, AttributeValue (required, optional, alternative names, type conversion etc)
Расширения для рефлекшена
GetCurrentAssemblyGetRequiredResourceStream
GetCustomAttribute<T>/GetCustomAttributes<T>
Enum: GetNames<T>, GetValues<T>, fast GetFlag
Advanced Activator.CreateInstance (required and optional parameters, default values etc)
Хелперы с использованием Expression по типу infoof для получения PropertyInfo, FieldInfo, MethodInfo и ConstructorInfo плюс для свойств и полей имена и полное имя (включая всю цепочку: a => a.User.Name вернет "User.Name")
Расширения для коллекций
Concat<T>(T singleElement)AsArray, AsList, AsHashSet
ToHashSet
Расширения для словарей
GetOrAdd, AddOrUpdateGetValueOrDefault
KeyEqualityComparer
Кеши, пулы
Словарь с ленивой инициализацией элементов, желательно потокобезопасныйObjectPool from Roslyn
Расширения для IO
Копирование потоковTempDir/TempFile/TempStream returns IDisposable
Прочее
Хелпер для сравнения текстовых данныхХелпер для использования ReaderWriterLockSlim совместно с using
Хелпер для получения экземпляров пустых массивов без создания объекта каждый раз заново
Парсер CSV
Парсер командной строки
Ассерты ala Code.NotNull(someValue, "someValue");
Factory для Disposable, using(Disposable.Create(()=>OnDispose())) { }
Range<T>/CompositeRange<T>
Топологическая сортировка
Небольшой набор для Func & Action. Часто требуется, например при сортировке создавать делегат, который возвращает сам себя: o => o
Хелпер для дампа куска массива байтов в строку и обратно
Расширения для строки
Расширения для XDocument
RequiredRoot, RequiredElement, RequiredAttributeElementValue, AttributeValue (required, optional, alternative names, type conversion etc)
Расширения для рефлекшена
GetCurrentAssemblyGetRequiredResourceStream
GetCustomAttribute<T>/GetCustomAttributes<T>
Enum: GetNames<T>, GetValues<T>, fast GetFlag
Advanced Activator.CreateInstance (required and optional parameters, default values etc)
Хелперы с использованием Expression по типу infoof для получения PropertyInfo, FieldInfo, MethodInfo и ConstructorInfo плюс для свойств и полей имена и полное имя (включая всю цепочку: a => a.User.Name вернет "User.Name")
Расширения для коллекций
Concat<T>(T singleElement)AsArray, AsList, AsHashSet
ToHashSet
Расширения для словарей
GetOrAdd, AddOrUpdateGetValueOrDefault
KeyEqualityComparer
Кеши, пулы
Словарь с ленивой инициализацией элементов, желательно потокобезопасныйObjectPool from Roslyn
Расширения для IO
Копирование потоковTempDir/TempFile/TempStream returns IDisposable
Прочее
Хелпер для сравнения текстовых данныхХелпер для использования ReaderWriterLockSlim совместно с using
Хелпер для получения экземпляров пустых массивов без создания объекта каждый раз заново
Парсер CSV
Парсер командной строки
Ассерты ala Code.NotNull(someValue, "someValue");
Factory для Disposable, using(Disposable.Create(()=>OnDispose())) { }
Range<T>/CompositeRange<T>
Топологическая сортировка
Небольшой набор для Func & Action. Часто требуется, например при сортировке создавать делегат, который возвращает сам себя: o => o
Хелпер для дампа куска массива байтов в строку и обратно