diff options
Diffstat (limited to 'NW4RTools/Util')
-rw-r--r-- | NW4RTools/Util/IOrderedDictionary.cs | 2 | ||||
-rw-r--r-- | NW4RTools/Util/OrderedDictionary.cs | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/NW4RTools/Util/IOrderedDictionary.cs b/NW4RTools/Util/IOrderedDictionary.cs index 6cf9b85..31a61eb 100644 --- a/NW4RTools/Util/IOrderedDictionary.cs +++ b/NW4RTools/Util/IOrderedDictionary.cs @@ -58,5 +58,7 @@ namespace NW4RTools.Util TKey GetKeyForIndex(int index);
+ TKey GetKeyForValue(TValue value);
+ int GetIndexForValue(TValue value);
}
}
diff --git a/NW4RTools/Util/OrderedDictionary.cs b/NW4RTools/Util/OrderedDictionary.cs index 98e523a..0463d33 100644 --- a/NW4RTools/Util/OrderedDictionary.cs +++ b/NW4RTools/Util/OrderedDictionary.cs @@ -171,6 +171,24 @@ namespace NW4RTools.Util return List[index].Key;
}
+ public TKey GetKeyForValue(TValue value) {
+ foreach (var kv in List) {
+ if (kv.Value.Equals(value))
+ return kv.Key;
+ }
+ throw new KeyNotFoundException();
+ }
+
+ public int GetIndexForValue(TValue value) {
+ int i = 0;
+ foreach (var kv in List) {
+ if (kv.Value.Equals(value))
+ return i;
+ i += 1;
+ }
+ throw new KeyNotFoundException();
+ }
+
/// <summary>
/// Inserts a new entry into the <see cref="OrderedDictionary{TKey,TValue}">OrderedDictionary<TKey,TValue></see> collection with the specified key and value at the specified index.
/// </summary>
|