using
System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace DocM
... {
public class MyList
...{
private List<DictionaryEntry> items = new List<DictionaryEntry>();
private int itemsInUse = 0;
/**//// <summary>
/// 构造函数
/// </summary>
public MyList()
...{
}
/**//// <summary>
/// 构造函数
/// </summary>
/// <param name="Capacity">设置MyList容量</param>
public MyList(int Capacity)
...{
if (items.Count > Capacity)
throw new InvalidOperationException("设置MyList的容量不能小于原来的容量");
// else
items.Capacity = Capacity;
}
public void Add(string key, object value)
...{
items.Add(new DictionaryEntry((object)key, value));
itemsInUse++;
}
public object this[string key]
...{
get
...{
int index;
if (TryGetIndexOfKey(key, out index))
return items[index].Value;
else
return null;
}
set
...{
int index;
if (TryGetIndexOfKey(key, out index))
...{
items.RemoveAt(index);
items.Insert(index, new DictionaryEntry(key, value));
}
else
Add(key, value);
}
}
public object this[int index]
...{
get
...{
if ((index >= items.Count) || (index < 0))
throw new OverflowException("数组越界");
return items[index].Value;
}
set
...{
if ((index >= items.Count) || (index < 0))
throw new OverflowException("数组越界");
DictionaryEntry de = items[index];
items.RemoveAt(index);
string key = (string)de.Key;
items.Insert(index, new DictionaryEntry(key, value));
}
}
private bool TryGetIndexOfKey(string key, out int index)
...{
for (index = 0; index < itemsInUse; index++)
...{
if (items[index].Key.Equals(key))
return true;
}
return false;
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace DocM
... {
public class MyList
...{
private List<DictionaryEntry> items = new List<DictionaryEntry>();
private int itemsInUse = 0;
/**//// <summary>
/// 构造函数
/// </summary>
public MyList()
...{
}
/**//// <summary>
/// 构造函数
/// </summary>
/// <param name="Capacity">设置MyList容量</param>
public MyList(int Capacity)
...{
if (items.Count > Capacity)
throw new InvalidOperationException("设置MyList的容量不能小于原来的容量");
// else
items.Capacity = Capacity;
}
public void Add(string key, object value)
...{
items.Add(new DictionaryEntry((object)key, value));
itemsInUse++;
}
public object this[string key]
...{
get
...{
int index;
if (TryGetIndexOfKey(key, out index))
return items[index].Value;
else
return null;
}
set
...{
int index;
if (TryGetIndexOfKey(key, out index))
...{
items.RemoveAt(index);
items.Insert(index, new DictionaryEntry(key, value));
}
else
Add(key, value);
}
}
public object this[int index]
...{
get
...{
if ((index >= items.Count) || (index < 0))
throw new OverflowException("数组越界");
return items[index].Value;
}
set
...{
if ((index >= items.Count) || (index < 0))
throw new OverflowException("数组越界");
DictionaryEntry de = items[index];
items.RemoveAt(index);
string key = (string)de.Key;
items.Insert(index, new DictionaryEntry(key, value));
}
}
private bool TryGetIndexOfKey(string key, out int index)
...{
for (index = 0; index < itemsInUse; index++)
...{
if (items[index].Key.Equals(key))
return true;
}
return false;
}
}
}