- Make
ReadOnlySet
implementIReadOnlySet
on .NET 5+.
- Revert breaking abstract
WrappingStreamBase.ReadAsync
/WriteAsync
overloads forMemory<byte>
.
- Breaking Drop support for .NET Core 2.1.
- Support .NET 6.0.
- Make
ReadOnlySet
implementIReadOnlySet
on .NET 5. DictionaryUtility
key types must benotnull
.- Breaking Add abstract
WrappingStreamBase.ReadAsync
/WriteAsync
overloads forMemory<byte>
on .NET Standard 2.1 and .NET Core. - Obsolete
DictionaryUtility.CreateKeyValuePair
on .NET Standard 2.1 and .NET Core. - Obsolete
EnumerableUtility.DistinctBy
on .NET 6. - Obsolete
EnumerableUtility.EnumerateBatches
on .NET 6. - Obsolete
EnumerableUtility.FirstOrDefault
on .NET 6. - Obsolete
EnumerableUtility.TakeLast
on .NET Standard 2.1 and .NET Core.
InvariantConvert.TryParse
methods allownull
.
- Restrict
EnumUtility
toEnum
. - Improve nullability of
FirstOrDefault
andTryFirst
.
- Potentially Breaking
InvariantConvert
andStringBuilderUtility.AppendInvariant
have different behavior for floating-point numbers.- The
G17
(orG9
) format is used (instead ofR
) to guarantee that floating-point numbers round-trip correctly. This may cause numbers to be serialized differently than in previous versions of Faithlife.Utility. - Lowercase variants of
-Infinity
,Infinity
, andNaN
are accepted inInvariantConvert.(Try)ParseDouble
. Previously, only those extra strings were accepted.
- The
- Changes for
netstandard2.1
andnet5.0
:StringCache
is implemented withHashSet<string>
.WrappingStream
supports the newRead(Async)
andWrite(Async)
overloads forSpan<byte>
andMemory<byte>
.
EnumerableUtility.Zip
is no longer an extension method in .NET 5, to avoid conflict withEnumerable.Zip
.- Add
StringUtility.ReplaceOrdinal
. (Useful to avoid StyleCop error without passingStringComparison.Ordinal
tostring.Replace
, which doesn't build before .NET 5.)
- Allow
AddIfNotNull
to work withList<Nullable<T>>
. - Support .NET Core App 2.1 instead of .NET Core App 2.0.
- Add missing
ConfigureAwait
.
- Remove dependency on
JetBrains.Annotations
. Use source code copied from ReSharper » Options » Code Inspection » Code Annotations. (This allows the annotations to be seen by ReSharper where the library is used.)
- Add
netcoreapp2.0
andnetstandard2.1
target frameworks; removenet472
. - Add C# 8 nullable annotations.
- Remove
DictionaryUtility.GetValueOrDefault
andTryAdd
as extension methods on new frameworks.
- Remove dependency on Faithlife.Analyzers.
- Update minimum target frameworks to .NET Standard 2.0, .NET 4.7.2.
- Add
InvariantConvert.ToInvariantString(object value)
overload. - Use
InvariantConvert
inUriUtility.FromPattern()
for better parameter stringification.
- Add
KeyEqualityComparer
. - Fix typo in StringBuilderUtility summary for AppendFormatInvariant.
- Breaking Remove
EnumerableUtility.ToHashSet()
. - Breaking Seal
WrappingStream
. - Breaking Introduce
WrappingStreamBase
and make it the base class ofCachingStream
,ReadOnlyStream
,RebasedStream
, andTruncatedStream
. This fixesCopyToAsync
forRebasedStream
andTruncatedStream
.
- Add
Optional<T>
.
- Update release notes link in NuGet package.
- Breaking Change .NET Framework minimum version to 4.6.1.
- Breaking Remove
PeekEnumerator
,Scoped
,StreamImpl
,TextWriterUtility
,TimeSpanUtility
,IWorkState
,WorkState
. - Breaking Modify and/or remove methods from
CollectionUtility
,DateTimeUtility
,DateTimeOffsetUtility
,DictionaryUtility
,EnumerableUtility
,EnumUtility
,GuidUtility
,ListUtility
,UriUtility
,StreamUtility
,StringSegment
,StringUtility
. - Breaking Rename
HashSetUtility
andReadOnlyHashSet
toSetUtility
andReadOnlySet
. - Breaking Move
InvariantConvert
toFaithlife.Utility
namespace. - Breaking Improve parameter names.
- Add
ByteUtility
. - Add
FileUtility
andDirectoryUtility
.
- Breaking Remove
EnumerableUtility.ToReadOnlyCollection
. - Add
EnumerableUtility.AsReadOnlyList
.
- Support
netstandard2.0
- Support
BeginRead
,BeginWrite
,EndRead
,EndWrite
inWrappingStream
,ReadOnlyStream
,CachingStream
,TruncatedStream
.
- Support
- Breaking Remove
EnumerableUtility.Append
and.Prepend
. Equivalent methods exist innetstandard1.6
.
- Initial release.