1 //Widgit is free software; you can redistribute it and/or modify
2 //it under the terms of the GNU General Public License as published by
3 //the Free Software Foundation; either version 2 of the License, or
4 //(at your option) any later version.
6 //Widgit is distributed in the hope that it will be useful,
7 //but WITHOUT ANY WARRANTY; without even the implied warranty of
8 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 //GNU General Public License for more details.
11 //You should have received a copy of the GNU General Public License
12 //along with Widgit; if not, write to the Free Software
13 //Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USAusing System;
16 using System
.Collections
.Generic
;
21 public class Multidict
<KeyType
, ValueType
> : System
.Collections
.IEnumerable
23 protected Dictionary
<KeyType
, List
<ValueType
>> m_dict
= new Dictionary
<KeyType
, List
<ValueType
>>();
29 public List
<ValueType
> Get(KeyType key
)
31 List
<ValueType
> items
;
32 if (m_dict
.TryGetValue(key
, out items
))
39 public bool Add(KeyType key
, ValueType
value)
41 return Add(key
, value, false);
44 public bool Add(KeyType key
, ValueType
value, bool bAllowDups
)
46 List
<ValueType
> items
;
47 if (!m_dict
.TryGetValue(key
, out items
))
49 items
= new List
<ValueType
>();
52 if (!items
.Contains(value) || bAllowDups
)
60 public System
.Collections
.IEnumerator
GetEnumerator()
62 return m_dict
.GetEnumerator();