Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/IO/NML/PropertiesHashtable.cs @ 2769

Last change on this file since 2769 was 2769, checked in by mkommend, 14 years ago

added unused files for netron (ticket #867)

File size: 1.6 KB
Line 
1using System;
2using System.Collections;
3namespace Netron.GraphLib.IO.NML
4{
5  /// <summary>
6  /// STC of string-value pairs, helpful in keeping a collection of properties with their value
7  /// </summary>
8  public class PropertiesHashtable : DictionaryBase
9  {
10    /// <summary>
11    /// keeps the collection of keys
12    /// </summary>
13    private StringCollection mKeys = new StringCollection();
14
15    /// <summary>
16    /// Gets the keys of the hashtable and
17    /// allows to loop over the keys without
18    /// boxing/unboxing.
19    /// </summary>
20    public StringCollection Keys
21    {
22      get{return mKeys;}
23   
24    }
25    /// <summary>
26    /// Constructor
27    /// </summary>
28    public PropertiesHashtable()
29    {
30     
31    }
32   
33
34   
35    /// <summary>
36    /// Adds a property-value pair
37    /// </summary>
38    /// <param name="key"></param>
39    /// <param name="propertyValue"></param>
40    public void Add(string key, object propertyValue)
41    {
42      this.InnerHashtable.Add(key, propertyValue);
43      mKeys.Add(key);
44    }
45    /// <summary>
46    /// Integer indexer
47    /// </summary>
48    public object this[int index]
49    {
50      get{
51     
52        if(mKeys[index]!=null)
53        {   
54          return this.InnerHashtable[mKeys[index]];
55        }
56        else return null;
57      }
58    }
59
60    /// <summary>
61    /// Removes an elements based on a key
62    /// </summary>
63    /// <param name="key">a (string) key</param>
64    /// <returns></returns>
65    public bool Remove(string key)
66    {
67      int index;
68      if((index=mKeys.Contains(key))>-1)
69      {
70        this.InnerHashtable.Remove(key);
71        this.mKeys.RemoveAt(index);
72        return true;
73      }
74      return false;
75    }
76  }
77}
Note: See TracBrowser for help on using the repository browser.