private void OnComponentConfigurationListChanged(object sender, BuildListEventArgs <BuildComponentConfiguration> e) { if (_multiMap == null) { _multiMap = new BuildMultiSet <string, BuildComponentConfiguration>(); } switch (e.ChangeType) { case BuildListChangeType.Added: BuildComponentConfiguration addedItem = e.ChangedItem; _multiMap.Add(addedItem.ComponentName, addedItem); break; case BuildListChangeType.Removed: BuildComponentConfiguration removedItem = e.ChangedItem; _multiMap.Remove(removedItem.ComponentName, removedItem); break; case BuildListChangeType.Replaced: BuildComponentConfiguration changedItem = e.ChangedItem; BuildComponentConfiguration replacedWithItem = e.ReplacedWith; _multiMap.Remove(changedItem.ComponentName, changedItem); _multiMap.Add(replacedWithItem.ComponentName, replacedWithItem); break; case BuildListChangeType.Cleared: _multiMap.Clear(); break; } }