mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 12:30:32 +00:00
107 lines
2.4 KiB
C#
107 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Cosmos.Hardware2
|
|
{
|
|
public class TempDictionary<Value>
|
|
{
|
|
private List<DictionaryItem> items = new List<DictionaryItem>();
|
|
|
|
public class DictionaryItem
|
|
{
|
|
UInt32 key;
|
|
|
|
public UInt32 Key
|
|
{
|
|
get { return key; }
|
|
set { key = value; }
|
|
}
|
|
|
|
Value _value;
|
|
|
|
public Value Value
|
|
{
|
|
get { return _value; }
|
|
set { value = this._value; }
|
|
}
|
|
|
|
public DictionaryItem(UInt32 key, Value avalue)
|
|
{
|
|
this.key = key;
|
|
this._value = avalue;
|
|
}
|
|
}
|
|
|
|
public Value this[UInt32 key]
|
|
{
|
|
get
|
|
{
|
|
Value res;
|
|
TryGetValue(key, out res);
|
|
return res;
|
|
}
|
|
set
|
|
{
|
|
TrySetValue(key, value);
|
|
}
|
|
}
|
|
|
|
public void Add(UInt32 key, Value value)
|
|
{
|
|
items.Add(new TempDictionary<Value>.DictionaryItem(key, value));
|
|
}
|
|
|
|
public bool TryGetValue(UInt32 key, out Value value)
|
|
{
|
|
for (int i = 0; i < items.Count; i++)
|
|
{
|
|
if (items[i].Key == key)
|
|
{
|
|
value = items[i].Value;
|
|
return true;
|
|
}
|
|
}
|
|
value = default(Value);
|
|
return false;
|
|
}
|
|
|
|
public bool ContainsKey(UInt32 key)
|
|
{
|
|
for (int i = 0; i < items.Count; i++)
|
|
{
|
|
if (items[i].Key == key)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public bool TrySetValue(UInt32 key, Value value)
|
|
{
|
|
for (int i = 0; i < items.Count; i++)
|
|
{
|
|
if (items[i].Key == key)
|
|
{
|
|
items[i].Value = value;
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public void Remove(UInt32 key)
|
|
{
|
|
for (int i = 0; i < items.Count; i++)
|
|
{
|
|
if (items[i].Key == key)
|
|
{
|
|
items.RemoveAt(i);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|