A collection of value-based generic collections implemented in C#.
| ValueCollections | Added project icon | |
| ValueCollections.Test | Introduced helper methods | |
| .gitignore | Use non-sorted inner collections | |
| CONTRIBUTING.md | Added documentation | |
| docker-compose.yml | Added Docker build | |
| Dockerfile | Added Docker build | |
| LICENSE | Added documentation | |
| project-icon.svg | Added project icon | |
| publish-library.sh | Added Docker build | |
| README.md | Added project icon | |
| ValueCollections.slnx | Initial version of ValueCollections | |
ValueCollections
TypeAdoption LogoA collection of value-based generic collections implemented in C#.
Usage
Example
// Keeps value semantics without having to override Equals/GetHashCode
public record Person(string name, DateTimeOffset birthTime, ValueSet<Person> relatives);
var bob = new Person(
"Bob",
DateTime.Parse("1983年01月22日 01:14:20"),
[
new Person(
"Hamid Gul",
DateTime.Parse("1975年10月18日 09:33:08"),
[]),
]);
var bobTwo = new Person(
"Bob",
DateTime.Parse("1983年01月22日 01:14:20"),
[
new Person(
"Hamid Gul",
DateTime.Parse("1975年10月18日 09:33:08"),
[]),
]);
Assert.Equals(bob, bobTwo); // Passes
Installation
Add it to your csproj:
<PackageReference Include="NameHillSoftware.ValueCollections" Version="version" />
More usage examples can be found in the project README.md.
Development
License
This project is licensed under the Apache License Version 2.0 - see the LICENSE file for details.