Updating linux build.
[Widgit.git] / Multidict.cs
blobe7a09ff12f4ee1623336be4b95c02114ee60c210
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;
15 using System;
16 using System.Collections.Generic;
17 using System.Text;
19 namespace Widgit
21 public class Multidict<KeyType, ValueType> : System.Collections.IEnumerable
23 protected Dictionary<KeyType, List<ValueType>> m_dict = new Dictionary<KeyType, List<ValueType>>();
25 public Multidict()
29 public List<ValueType> Get(KeyType key)
31 List<ValueType> items;
32 if (m_dict.TryGetValue(key, out items))
34 return items;
36 return null;
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>();
50 m_dict[key] = items;
52 if (!items.Contains(value) || bAllowDups)
54 items.Add(value);
55 return true;
57 return false;
60 public System.Collections.IEnumerator GetEnumerator()
62 return m_dict.GetEnumerator();