说说C#中Dictionary的用法

先看一个实例:

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;

转载于:https://www.cnblogs.com/springyangwc/archive/2011/02/24/1964065.html

猜你喜欢

转载自blog.csdn.net/weixin_34199405/article/details/94228084