zoukankan      html  css  js  c++  java
  • C#中Dictionary的用法及用途 DoTop

    Dictionary<string, string>是一个泛型

    他本身有集合的功能有时候可以把它看成数组

    他的结构是这样的:Dictionary<[key], [value]>

    他的特点是存入对象是需要与[key]值一一对应的存入该泛型

    通过某一个一定的[key]去找到对应的值

    举个例子:

    //实例化对象

    Dictionary<int, string> dic = new Dictionary<int, string>();

    //对象打点添加

    dic.Add(1, "one");

    dic.Add(2, "two");

    dic.Add(3, "one");

    //提取元素的方法

    string a = dic[1];

    string b = dic[2];

    string c = dic[3];

    //1、2、3是键,分别对应“one”“two”“one”

    //上面代码中分别把值赋给了a,b,c

    //注意,键相当于找到对应值的唯一标识,所以不能重复

    //但是值可以重复

    如果你还看不懂我最后给你举一个通俗的例子

    有一缸米,你想在在每一粒上都刻上标记,不重复,相当于“键”当你找的时候一一对应不会找错,这就是这个泛型的键的-作用,而米可以一样,我的意思你明白了吧?

    -------------------------------------------------------------------------

    c# 对dictionary类进行排序用什么接口实现

    如果使用.Net Framework 3.5的话,事情就很简单了。呵呵。

    如果不是的话,还是自己写排序吧。

    using System;

    using System.Collections.Generic;

    using System.Text;

    using System.Linq;

    namespace DictionarySorting

    {

    class Program

    {

    static void Main(string[] args)

    {

    Dictionary<int, string> dic = new Dictionary<int, string>();

    dic.Add(1, "HaHa");

    dic.Add(5, "HoHo");

    dic.Add(3, "HeHe");

    dic.Add(2, "HiHi");

    dic.Add(4, "HuHu");

    var result = from pair in dic orderby pair.Key select pair;

    foreach (KeyValuePair<int, string> pair in result)

    {

    Console.WriteLine("Key:{0}, Value:{1}", pair.Key, pair.Value);

    }

    Console.ReadKey();

    }

    }

    }

    【执行结果】

    Key:1, Value:HaHa

    Key:2, Value:HiHi

    Key:3, Value:HeHe

    Key:4, Value:HuHu

    Key:5, Value:HoHo

    Dictionary的基本用法。假如

    需求:现在要导入一批数据,这些数据中有一个称为公司的字段是我们数据库里已经存在了的,目前我们需要把每个公司名字转为ID后才存入数据库。

    分析:每导一笔记录的时候,就把要把公司的名字转为公司的ID,这个不应该每次都查询一下数据库的,因为这太耗数据库的性能了。

    解决方案:在业务层里先把所有的公司名称及相应的公司ID一次性读取出来,然后存放到一个Key和Value的键值对里,然后实现只要把一个公司的名字传进去,就可以得到此公司相应的公司ID,就像查字典一样。对,我们可以使用字典Dictionary操作这些数据。

    示例:SetKeyValue()方法相应于从数据库里读取到了公司信息。

    /// <summary> /// 定义Key为string类型,Value为int类型的一个Dictionary /// </summary> /// <returns></returns> protected Dictionary<string, int> SetKeyValue() { Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("公司1", 1); dic.Add("公司2", 2); dic.Add("公司3", 3); dic.Add("公司4", 4); return dic; }

    /// <summary> /// 得到根据指定的Key行到Value /// </summary> protected void GetKeyValue() { Dictionary<string, int> myDictionary = SetKeyValue(); //测试得到公司2的值 int directorValue = myDictionary["公司2"]; Response.Write("公司2的value是:" + directorValue.ToString()); }

    本文转自加菲猫博客http://www.cnblogs.com/linzheng/archive/2010/12/13/1904709.html

  • 相关阅读:
    37. Sudoku Solver(js)
    36. Valid Sudoku(js)
    35. Search Insert Position(js)
    34. Find First and Last Position of Element in Sorted Array(js)
    33. Search in Rotated Sorted Array(js)
    32. Longest Valid Parentheses(js)
    函数的柯里化
    俞敏洪:我和马云就差了8个字
    vue路由传值params和query的区别
    简述vuex的数据传递流程
  • 原文地址:https://www.cnblogs.com/zizaisuixin/p/2511874.html
Copyright © 2011-2022 走看看