DotNet.MultiMap 2.2.1

Dot Net generic collections multi map extensions.

Install-Package DotNet.MultiMap -Version 2.2.1
dotnet add package DotNet.MultiMap --version 2.2.1
<PackageReference Include="DotNet.MultiMap" Version="2.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DotNet.MultiMap --version 2.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

DotNet.MultiMap

MultiMap with using List&lt;T> and HashSet&lt;> grouping.
Best solution for using with NetCore EntityFramework and NHibernate for case complex data manipulation and memory caching.

Nuget.org

https://www.nuget.org/packages/DotNet.MultiMap/

Examples and Tests

Test Examples of using from unit test:

   MultiMapList<string, string> multiMapList = new MultiMapList<string, string>();
   string key = nameof(key);
   string val = nameof(val);
   string val2 = nameof(val2);

   Assert.IsTrue(multiMapList.TryToAddMapping(key, val));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val2));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val2));
   Assert.AreEqual(2, multiMapList.ContainsMapping(key, val));
   Assert.AreEqual(2, multiMapList.ContainsMapping(key, val2));

   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val));
   Assert.AreEqual(1, multiMapList.ContainsMapping(key, val));
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val));
   Assert.IsFalse(multiMapList.TryToRemoveMapping(key, val));
   Assert.AreEqual(0, multiMapList.ContainsMapping(key, val));
   Assert.AreEqual(1, multiMapList.Keys.Count);
   Assert.AreEqual(1, multiMapList.Values.Count);

   
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val2));
   Assert.AreEqual(1, multiMapList.ContainsMapping(key, val2));
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val2));
   Assert.IsFalse(multiMapList.TryToRemoveMapping(key, val2));
   Assert.AreEqual(0, multiMapList.ContainsMapping(key, val2));

   Assert.AreEqual(0, multiMapList.Keys.Count);
   Assert.AreEqual(0, multiMapList.Values.Count);

  MultiMapHashSet<string, string> multiMapHashSet = new MultiMapHashSet<string, string>();
  string key = nameof(key);
  string val = nameof(val);
  string val2 = nameof(val2);

  Assert.IsTrue(multiMapHashSet.TryToAddMapping(key, val));
  Assert.IsTrue(multiMapHashSet.TryToAddMapping(key, val2));
  Assert.AreEqual(1, multiMapHashSet.ContainsMapping(key, val));
  Assert.AreEqual(1, multiMapHashSet.ContainsMapping(key, val2));

  Assert.IsTrue(multiMapHashSet.TryToRemoveMapping(key, val));
  Assert.AreEqual(0, multiMapHashSet.ContainsMapping(key, val));
  Assert.IsFalse(multiMapHashSet.TryToRemoveMapping(key, val));

  Assert.AreEqual(1, multiMapHashSet.Keys.Count);
  Assert.AreEqual(1, multiMapHashSet.Values.Count);

  
  Assert.IsTrue(multiMapHashSet.TryToRemoveMapping(key, val2));
  Assert.IsFalse(multiMapHashSet.TryToRemoveMapping(key, val2));
  Assert.AreEqual(0, multiMapHashSet.ContainsMapping(key, val2));

  Assert.AreEqual(0, multiMapHashSet.Keys.Count);
  Assert.AreEqual(0, multiMapHashSet.Values.Count);

DotNet.MultiMap

MultiMap with using List&lt;T> and HashSet&lt;> grouping.
Best solution for using with NetCore EntityFramework and NHibernate for case complex data manipulation and memory caching.

Nuget.org

https://www.nuget.org/packages/DotNet.MultiMap/

Examples and Tests

Test Examples of using from unit test:

   MultiMapList<string, string> multiMapList = new MultiMapList<string, string>();
   string key = nameof(key);
   string val = nameof(val);
   string val2 = nameof(val2);

   Assert.IsTrue(multiMapList.TryToAddMapping(key, val));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val2));
   Assert.IsTrue(multiMapList.TryToAddMapping(key, val2));
   Assert.AreEqual(2, multiMapList.ContainsMapping(key, val));
   Assert.AreEqual(2, multiMapList.ContainsMapping(key, val2));

   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val));
   Assert.AreEqual(1, multiMapList.ContainsMapping(key, val));
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val));
   Assert.IsFalse(multiMapList.TryToRemoveMapping(key, val));
   Assert.AreEqual(0, multiMapList.ContainsMapping(key, val));
   Assert.AreEqual(1, multiMapList.Keys.Count);
   Assert.AreEqual(1, multiMapList.Values.Count);

   
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val2));
   Assert.AreEqual(1, multiMapList.ContainsMapping(key, val2));
   Assert.IsTrue(multiMapList.TryToRemoveMapping(key, val2));
   Assert.IsFalse(multiMapList.TryToRemoveMapping(key, val2));
   Assert.AreEqual(0, multiMapList.ContainsMapping(key, val2));

   Assert.AreEqual(0, multiMapList.Keys.Count);
   Assert.AreEqual(0, multiMapList.Values.Count);

  MultiMapHashSet<string, string> multiMapHashSet = new MultiMapHashSet<string, string>();
  string key = nameof(key);
  string val = nameof(val);
  string val2 = nameof(val2);

  Assert.IsTrue(multiMapHashSet.TryToAddMapping(key, val));
  Assert.IsTrue(multiMapHashSet.TryToAddMapping(key, val2));
  Assert.AreEqual(1, multiMapHashSet.ContainsMapping(key, val));
  Assert.AreEqual(1, multiMapHashSet.ContainsMapping(key, val2));

  Assert.IsTrue(multiMapHashSet.TryToRemoveMapping(key, val));
  Assert.AreEqual(0, multiMapHashSet.ContainsMapping(key, val));
  Assert.IsFalse(multiMapHashSet.TryToRemoveMapping(key, val));

  Assert.AreEqual(1, multiMapHashSet.Keys.Count);
  Assert.AreEqual(1, multiMapHashSet.Values.Count);

  
  Assert.IsTrue(multiMapHashSet.TryToRemoveMapping(key, val2));
  Assert.IsFalse(multiMapHashSet.TryToRemoveMapping(key, val2));
  Assert.AreEqual(0, multiMapHashSet.ContainsMapping(key, val2));

  Assert.AreEqual(0, multiMapHashSet.Keys.Count);
  Assert.AreEqual(0, multiMapHashSet.Values.Count);

Release Notes

Singed assembly; version for netstandard2.0

  • .NETStandard 2.0

    • No dependencies.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.2.1 12,854 9/25/2017
2.2.0 313 8/28/2017
2.0.1 348 7/29/2017
2.0.0 320 7/23/2017