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

View File

@ -35,7 +35,7 @@ namespace Nuclex.Support.Collections {
/// <para> /// <para>
/// Therefore, it's not only good at coping with lists that are modified at their /// 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 /// 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> /// </para>
/// </remarks> /// </remarks>
public partial class Deque<ItemType> : IList<ItemType>, IList { public partial class Deque<ItemType> : IList<ItemType>, IList {

View File

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

View File

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

View File

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