Информация об изменениях

Сообщение CodeJam Roadmap от 16.03.2016 20:39

Изменено 18.03.2016 21:42 AndrewVK

Расширения для строки

  • Инфиксные IsNullOrEmpty, IsNullOrWhitespace, NotNullNorEmpty, NotNullNorWhitespace
  • Инфиксный Format
  • Инфиксный Join
  • Length, корректно работающий с null
  • NaturalStringComparer
  • Инфиксные формы для char
  • Дополнительные вариации Substring

    Расширения для XDocument

  • RequiredRoot, RequiredElement, RequiredAttribute
  • ElementValue, AttributeValue (required, optional, alternative names, type conversion etc)

    Расширения для рефлекшена

  • GetCurrentAssembly
  • GetRequiredResourceStream
  • 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
  • Инфиксные формы для Array
  • FirstOrDefault with default value
  • Топологическая сортировка

    Расширения для словарей

  • GetOrAdd, AddOrUpdate
  • GetValueOrDefault
  • KeyEqualityComparer

    Кеши, пулы

  • Словарь с ленивой инициализацией элементов, желательно потокобезопасный
  • ObjectPool from Roslyn

    Расширения для IO

  • Копирование потоков
  • TempDir/TempFile/TempStream returns IDisposable

    Прочее

  • Хелпер для сравнения текстовых данных
  • Хелпер для использования ReaderWriterLockSlim совместно с using
  • Хелпер для получения экземпляров пустых массивов без создания объекта каждый раз заново
  • Парсер CSV (experimental)
  • Парсер командной строки (experimental)
  • Ассерты ala Code.NotNull(someValue, "someValue");
  • Factory для Disposable, using(Disposable.Create(()=>OnDispose())) { }
  • Range<T>/CompositeRange<T> (experimental)
  • Небольшой набор для Func & Action. Часто требуется, например при сортировке создавать делегат, который возвращает сам себя: o => o
  • Хелпер для дампа куска массива байтов в строку и обратно
  • Option<T>
  • Расширения для строки

  • Инфиксные IsNullOrEmpty, IsNullOrWhitespace, NotNullNorEmpty, NotNullNorWhitespace
  • Инфиксный Format
  • Инфиксный Join
  • Length, корректно работающий с null
  • NaturalStringComparer
  • Инфиксные формы для char
  • Дополнительные вариации Substring

    Расширения для XDocument

  • RequiredRoot, RequiredElement, RequiredAttribute
  • ElementValue, AttributeValue (required, optional, alternative names, type conversion etc)

    Расширения для рефлекшена

  • GetCurrentAssembly
  • GetRequiredResourceStream
  • 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
  • Инфиксные формы для Array
  • FirstOrDefault with default value
  • Топологическая сортировка

    Расширения для словарей

  • GetOrAdd, AddOrUpdate
  • GetValueOrDefault
  • KeyEqualityComparer

    Кеши, пулы

  • Словарь с ленивой инициализацией элементов, желательно потокобезопасный
  • ObjectPool from Roslyn

    Расширения для IO

  • Копирование потоков
  • TempDir/TempFile/TempStream returns IDisposable

    Прочее

  • Хелпер для сравнения текстовых данных
  • Хелпер для использования ReaderWriterLockSlim совместно с using
  • Хелпер для получения экземпляров пустых массивов без создания объекта каждый раз заново
  • Парсер CSV (experimental)
  • Парсер командной строки (experimental)
  • Ассерты ala Code.NotNull(someValue, "someValue");
  • Factory для Disposable, using(Disposable.Create(()=>OnDispose())) { }
  • Range<T>/CompositeRange<T> (experimental)
  • Небольшой набор для Func & Action. Часто требуется, например при сортировке создавать делегат, который возвращает сам себя: o => o
  • Хелпер для дампа куска массива байтов в строку и обратно
  • Option<T>