Dictionary<string, string>

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());
}

原文地址

时间: 2024-12-08 05:26:06

Dictionary&lt;string, string&gt;的相关文章

android Device Admin以及hasSystemFeature(String string)

Device Admin示例介绍了类DeviceAdminReceiver,DevicePolicyManager和ActivityManager. 类DevicePolicyManager 用于管理Android设备定义的一些策略,主要指密码定义的长度,密码是否要含大写字母,小写字母等设置密码需要满足的规范,锁定设备或是清除所有用户数据,这个类一般需要配合DeviceAdminReceiver来使用.DeviceAdminReceiver派生于BroadcastReceiver,可以接受And

struts2-Struts2 s:select 如何加载List&amp;amp;lt;Object[]&amp;amp;gt; 和Map&amp;amp;lt;String,String&amp;amp;gt;

问题描述 Struts2 s:select 如何加载List<Object[]> 和Map<String,String> map的时候这么写的/s:select 报错 org.apache.jasper.JasperException: tag 'select', field 'list', name 'ptYxsbgkxx.ptYxsbjbqk.ptYxsbjbqk.yxsh': The requested list key 'sjyxshs' could not be reso

string&amp;amp;gt;&amp;amp;gt;循环求和问题-大神求解救,list&amp;amp;lt;Map&amp;amp;lt;String,String&amp;amp;gt;&amp;amp;gt;去重求和问题?本人菜鸟

问题描述 大神求解救,list<Map<String,String>>去重求和问题?本人菜鸟 问题是:有个list>,里面存放的比如是[{num=1,cc=1},{num=1,cc=1},{num=1,cc=1},{num=1,cc=2},{num=1,cc=2}],要求将list>变为存放的是[{num=3,cc=1},{num=2,cc=2}] 解决方案 将num和cc拼接成key,存储在map中,然后遍历去重 比如第一个元素可以为1#1,第二个元素可以为1#1,依

区分java中String+String和String+char_java

我们来考虑一个关于java中String的问题: "abc" + '/'和 "abc" + "/"的区别. 通过这个例子, 我们可以顺便练习一下JDK工具中javap的用法, 原问题是这样的: 把斜杠/当作字符或字符串有什么区别呢? 一个是当作基本数据类型char,一个是对象String.具体有什么区别呢? 当作字符效率会更高吗?String str = "abc" + '/';和String str = "abc&

spring注入-spring 注入Map&amp;amp;lt;String, Map&amp;amp;lt;String, String&amp;amp;gt;&amp;amp;gt;

问题描述 spring 注入Map<String, Map<String, String>> spring注入这类数据的时候如果配置文件写成如下方式 http://ask.csdn.net/# <!-- 数据审核的关键信息配置 --> <!-- 快递网点 --> WEB_EXPRESS_STATION 快递网点审核 STATIONNAME ID STATUS 0 1 会报Could not resolve matching constructor (hint

private Dictionary&amp;amp;lt;string, PluginEngine.ICommand&amp;amp;gt; _CommandCol = null;怎么在c++MFC实现

问题描述 vs2010C#中privateDictionary<string,PluginEngine.ICommand>_CommandCol=null;到了VS平台托管的c++MFC中string类型不能用了c++中System::Collections:Generic::Dictionary<???,PluginEngine.ICommand>问号的地方不知道怎么变了....(PluginEngine.ICommand是自己定义的插件接口) 解决方案 解决方案二:C++也有S

Map&amp;amp;lt;String,String&amp;amp;gt; rm=new HashMap&amp;amp;lt;String,String&amp;amp;gt;(2)这个2是什么意思?

问题描述 如题了,请问一下这个2干嘛的?有他没有他有啥不同? 解决方案 解决方案二:HashMappublicHashMap(intinitialCapacity)构造一个带指定初始容量和默认加载因子(0.75)的空HashMap.参数:initialCapacity-初始容量.抛出:IllegalArgumentException-如果初始容量为负.解决方案三:publicstaticMap<String,ERPOrgCorp>toCorpMap(List<ERPOrgCorp>

接口开发,带string和struct参数方法编写,图片base64Binary编码编写(c#开发)

问题描述 接口名称:Std::stringSendVehiclePass(std::stringVehiclePassInfo,structxsd__base64BinaryPlatePicData,structxsd__base64BinaryCarPic1,structxsd__base64BinaryCarPic2,structxsd__base64BinaryCarPic3)参数说明:VehiclePassInfo:过车信息详情xml,具体如下:<?xmlversion="1.0&

[经典面试题][百度]c++实现STL中的string类

题目 请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能. 代码 /*------------------------------------- * 日期:2015-03-31 * 作者:SJF0115 * 题目: 实现string类 * 来源:百度 * 博客: ------------------------------------*/ #include <iostream> #include <cstring> us