说说C#中Dictionary的用法
时间:2011-02-24 来源:spring yang
private Dictionary<string, string> needfirstReplaces = new Dictionary<string, string>()
{
{"one","onemail"},
{"two","twomail"},
{"three","threemail"},
{"four","fourmail"}
};
protected virtual Dictionary<string, string> firstReplaces
{
get
{
Dictionary<string, string> Replaces = new Dictionary<string, string>(){ };
return Replaces;
}
}
private DataTable ReplaceCloumnString(DataTable dtFormatedData, List<string> ReplaceColumn)
{
Dictionary<string, string> newfirstReplaces = new Dictionary<string, string>();
newfirstReplaces = needfirstReplaces;
foreach (KeyValuePair<string, string> newitem in firstReplaces)
{
if (!newfirstReplaces.ContainsKey(newitem.Key))
{
newfirstReplaces.Add(newitem.Key, newitem.Value);
}
}
DataTable dtFormatedDataCopy = dtFormatedData.Clone();
foreach (DataRow dr in dtFormatedData.Rows)
{
foreach (KeyValuePair<string, string> item in newfirstReplaces)
{
foreach (string needColumn in ReplaceColumn)
{
if (dr[needColumn].ToString().Contains(item.Key))
{
string ContentStr = dr[needColumn].ToString();
dr[needColumn] = ReplaceStr(ContentStr, item.Key, item.Value);
}
}
}
DataRow drNewRow = dtFormatedDataCopy.NewRow();
drNewRow.ItemArray = dr.ItemArray;
dtFormatedDataCopy.Rows.Add(drNewRow);
}
return dtFormatedDataCopy;
}
Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组, 他的结构是这样的:Dictionary<[key], [value]> ,
他的特点是存入对象是需要与[key]值一一对应的存入该泛型, 通过某一个一定的[key]去找到对应的值,[key] 不能重复,它的单个数组是KeyValuePair<key, value>,[value]可以是string,int 和一个类等等.
也可以用linq来操作如:
var result = from pair in newfirstReplaces orderby pair.Key select pair;