Assigning null to a key in the MultiDictionary will not delete that key (this behavior is symmetric with the behavior of querying the values under a key where null indicates that the key doesn't exist - it also doesn't add any "secret tricks" because the normal Dictionary doesn't intersect this functionality of having an extra container between the key and the values)

git-svn-id: file:///srv/devel/repo-conversion/nusu@217 d2e56fa2-650e-0410-a79f-9358c0239efd
This commit is contained in:
Markus Ewald 2011-08-14 09:33:10 +00:00
parent daf8f559d6
commit b7c883ea8d
5 changed files with 9 additions and 7 deletions

View File

@ -388,9 +388,7 @@
<Link>Foundation.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Source\Cloning\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -35,7 +35,7 @@ namespace Nuclex.Support.Collections {
/// <para>
/// Therefore, it's not only good at coping with lists that are modified at their
/// beginning, but also at handling huge data sets since enlarging the deque doesn't
/// require items to be copied around and still can be accessed by index.
/// require items to be copied around and it still can be accessed by index.
/// </para>
/// </remarks>
public partial class Deque<ItemType> : IList<ItemType>, IList {

View File

@ -18,11 +18,11 @@ License along with this library
*/
#endregion
#if UNITTEST
using System;
using System.Collections.Generic;
#if UNITTEST
using NUnit.Framework;
using NMock;

View File

@ -327,6 +327,10 @@ namespace Nuclex.Support.Collections {
public ICollection<TValue> this[TKey key] {
get { return this.typedDictionary[key]; }
set {
if(value == null) {
this.typedDictionary.Remove(key);
}
ICollection<TValue> currentValues;
if(this.typedDictionary.TryGetValue(key, out currentValues)) {
currentValues.Clear();

View File

@ -119,7 +119,7 @@ namespace Nuclex.Support.Collections {
/// Comparer used to identify and compare items to each other
/// </param>
public WeakCollection(
IList<WeakReference<ItemType>> items, IEqualityComparer<ItemType> comparer
IList<WeakReference<ItemType>> items, IEqualityComparer<ItemType> comparer
) {
this.items = items;
this.comparer = comparer;