Dictionary<string, string>是2个泛型,什么是泛型?

一、Dictionary<string, string>是二个泛型

Dictionary<string, string>是2个泛型 

 

应用泛型
上面是用泛型来重写上边的栈,用二个通用的数额类型T来作为三个占位符,等待在实例化时用二个实在的连串来代表。让我们来探望泛型的威力:



她本人有成团的成效有时候能够把它看成数组 

  

public class Stack<T>

    {

        private T[] m_item;

        public T Pop(){...}

        public void Push(T item){...}

        public Stack(int i)

        {

            this.m_item = new T[i];

        }

}

她自个儿有汇集的作用有时候能够把它看做数组

他的构造是这么的:Dictionary<[key], [value]> 

 Dictionary<string, string>是七个泛型

 

他的组织是如此的:Dictionary<[key], [value]>

她的特点是存入对象是内需与[key]值1一对应的存入该泛型 

她自小编有成团的作用有时候能够把它作为数组

金沙注册送58,其一类和object完毕的类有完全不一样的分别:

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

透过某贰个早晚的[key]去找到呼应的值 

他的协会是如此的:Dictionary<[key], [value]>

一.      
他是项目安全的。实例化了int类型的栈,就不可能处理string类型的数目,别的数据类型也一律。

透过某二个决然的[key]去找到呼应的值

举个例子: 

她的特色是存入对象是亟需与[key]值1一对应的存入该泛型

二.      
无需装箱和折箱。这些类在实例化时,根据所盛传的数据类型生开支地代码,本地代码数据类型已规定,所以不必装箱和折箱。

举个例证:

//实例化对象 

透过某四个必将的[key]去找到相应的值

三.       无需类型转换。

//实例化对象

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

举个例子:

 

中Dictionary的用法及用途实例,是四个泛型使用验证。Dictionary<int, string> dic = new Dictionary<int, string>();

//对象打点添加 

//实例化对象

 

//对象打点添加

dic.Add(1, “one”); 

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

 

dic.Add(1, “one”);

dic.Add(2, “two”); 

//对象打点添加

 

dic.Add(2, “two”);

dic.Add(3, “one”); 

dic.Add(1, “one”);

他的布局是那样的:Dictionary<[key], [value]>

dic.Add(3, “one”);

//提取成分的不2诀要 

dic.Add(2, “two”);

 

//提取成分的方法

string a = dic[1]; 

dic.Add(3, “one”);

她的性状是存入对象是索要与[key]值壹一对应的存入该泛型

string a = dic[1];

string b = dic[2]; 

//提取元素的措施

 

string b = dic[2];

string c = dic[3]; 

string a = dic[1];

经过某1个早晚的[key]去找到相应的值

string c = dic[3];

//1、二、三是键,分别对应“one”“two”“one” 

string b = dic[2];

 

//壹、贰、叁是键,分别对应“one”“two”“one”

//上边代码中分头把值赋给了a,b,c 

string c = dic[3];

举个例子:

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

//注意,键也正是找到对应值的唯1标识,所以不可能重复 

//壹、二、三是键,分别对应“one”“two”“one”

 

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

//不过值能够重复 

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

//实例化对象

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];

//通过Key查找元素

if(myDictionary.ContainsKey(1))

{

Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);

 }

//通过KeyValuePair遍历元素

foreach(KeyValuePair<int,string>kvp in myDictionary)

{

Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);

}

//仅遍历键 Keys 属性

Dictionary<int,string>.KeyCollection keyCol=myDictionary.Keys;

foreach(intkeyinkeyCol)

{

Console.WriteLine("Key = {0}", key);

}

//仅遍历值 Valus属性

Dictionary<int,string>.ValueCollection valueCol=myDictionary.Values;

foreach(stringvalueinvalueCol)

{

Console.WriteLine("Value = {0}", value);

}

//通过Remove方法移除指定的键值

myDictionary.Remove(1);

if(myDictionary.ContainsKey(1))

{

  Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);

}

else

{

Console.WriteLine("不存在 Key : 1"); 

 }

//可是值可以再度

要是你还看不懂小编最终给您举3个起先的事例 

//注意,键也正是找到对应值的绝无仅有标识,所以无法重新

 


有一缸米,你想在在每一粒上都刻上标记,不另行,约等于“键”当你找的时候1一对应不会找错,这正是这一个泛型的键的-作用,而米能够同样,作者的意味你精晓了呢?

//可是值能够再度

其它常见属性和方法的说明:

  Comparer:           获取用于确定字典中的键是否相等的 IEqualityComparer。

  Count:                  获取包含在 Dictionary中的键/值对的数目。

  Item:                    获取或设置与指定的键相关联的值。

  Keys:                   获取包含 Dictionary中的键的集合。

  Values:                获取包含 Dictionary中的值的集合。

  Add:                    将指定的键和值添加到字典中。

  Clear:                  从 Dictionary中移除所有的键和值。

  ContainsKey:      确定 Dictionary是否包含指定的键。

  ContainsValue:   确定 Dictionary是否包含特定值。             

  GetEnumerator:  返回循环访问 Dictionary的枚举数。

  GetType:             获取当前实例的 Type。 (从 Object 继承。)

  Remove:             从 Dictionary中移除所指定的键的值。

  ToString:             返回表示当前 Object的 String。 (从 Object 继承。)

  TryGetValue:      获取与指定的键相关联的值。


设若你还看不懂笔者最终给您举贰个起初的例证

  

二、c# 对dictionary类进行排序用哪些接口完结

c# 对dictionary类举办排序用怎么样接口实现

有1缸米,你想在在每1粒上都刻上标记,不重复,也正是“键”当你找的时候1一对应不会找错,那正是以此泛型的键的-功效,而米能够1样,笔者的情趣你领悟了吧?

Dictionary的主干用法。即使

假定使用.Net Framework 三.5的话,事情就相当粗略了。呵呵。

比方使用.Net Framework 三.五的话,事情就很不难了。呵呵。 


要求:未来要导入一堆数量,这几个数据中有三个称呼公司的字段是大家数据Curry早已存在了的,近年来咱们须求把各种集团名字转为ID后才存入数据库。

假定不是的话,如故友好写排序吧。

假使不是的话,依然友好写排序吧。 

c# 对dictionary类实行排序用哪些接口达成

浅析:每导一笔记录的时候,就把要把集团的名字转为集团的ID,这么些不该每趟都询问一下数据库的,因为那太耗数据库的性质了。

金沙注册送58 1金沙注册送58 2View Code

 1 using System; 
 2 
 3  using System.Collections.Generic; 
 4 
 5 using System.Text; 
 6 
 7 using System.Linq; 
 8 
 9  
10 
11 namespace DictionarySorting 
12 
13 { 
14 
15 class Program 
16 
17 { 
18 
19 static void Main(string[] args) 
20 
21 { 
22 
23 Dictionary<int, string> dic = new Dictionary<int, string>(); 
24 
25 dic.Add(1, "HaHa"); 
26 
27 dic.Add(5, "HoHo"); 
28 
29 dic.Add(3, "HeHe"); 
30 
31 dic.Add(2, "HiHi"); 
32 
33 dic.Add(4, "HuHu"); 
34 
35  
36 
37 var result = from pair in dic orderby pair.Key select pair; 
38 
39  
40 
41 foreach (KeyValuePair<int, string> pair in result) 
42 
43 { 
44 
45 Console.WriteLine("Key:{0}, Value:{1}", pair.Key, pair.Value); 
46 
47 } 
48 
49  
50 
51 Console.ReadKey(); 
52 
53 } 
54 
55 } 
56 
57 } 
58 
59  

假定使用.Net Framework 三.伍的话,事情就不会细小略了。呵呵。

消除方案:在业务层里先把持有的商户名称及相应的商号ID三回性读取出来,然后存放到三个Key和Value的键值对里,然后完结只要把一个商户的名字传进去,就足以博得此集团相应的信用合作社ID,就像查字典壹样。对,我们得以行使字典Dictionary操作那个数量。

 1 using System; 
 2 
 3  using System.Collections.Generic; 
 4 
 5  using System.Text; 
 6 
 7  using System.Linq; 
 8 
 9 namespace DictionarySorting 
10 
11 { 
12 
13 class Program 
14 
15 { 
16 
17 static void Main(string[] args) 
18 
19 { 
20 
21 Dictionary<int, string> dic = new Dictionary<int, string>(); 
22 
23 dic.Add(1, "HaHa"); 
24 
25 dic.Add(5, "HoHo"); 
26 
27 dic.Add(3, "HeHe"); 
28 
29 dic.Add(2, "HiHi"); 
30 
31 dic.Add(4, "HuHu"); 
32 
33 var result = from pair in dic orderby pair.Key select pair; 
34 
35 foreach (KeyValuePair<int, string> pair in result) 
36 
37 { 
38 
39 Console.WriteLine("Key:{0}, Value:{1}", pair.Key, pair.Value); 
40 
41 } 
42 
43 Console.ReadKey(); 
44 
45 } 
46 
47 } 
48 
49 } 
50 
51 【执行结果】 
52 
53 Key:1, Value:HaHa 
54 
55 Key:2, Value:HiHi 
56 
57 Key:3, Value:HeHe 
58 
59 Key:4, Value:HuHu 
60 
61 Key:5, Value:HoHo

【执行结果】 

如若不是的话,照旧友好写排序吧。

示范:SetKeyValue()方法相应于从数据Curry读取到了卖家音信。

================================================================================

1 Key:1, Value:HaHa 
2 
3 Key:2, Value:HiHi 
4 
5 Key:3, Value:HeHe 
6 
7 Key:4, Value:HuHu 
8 
9 Key:5, Value:HoHo

using System;

 

三、Dictionary的主导用法。假诺

Dictionary的宗旨用法。要是

using System.Collections.Generic;

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

需求:将来要导入一堆数量,那个多少中有一个名字为集团的字段是我们数据Curry早就存在了的,如今大家必要把各样商户名字转为ID后才存入数据库。

必要:以后要导入一群数量,那么些多少中有3个名字为企业的字段是大家数据Curry已经存在了的,如今大家必要把种种集团名字转为ID后才存入数据库。

using System.Text;

 

解析:每导一笔记录的时候,就把要把公司的名字转为公司的ID,这么些不该每一回都询问一下数据库的,因为那太耗数据库的属性了。

浅析:每导一笔记录的时候,就把要把卖家的名字转为集团的ID,那一个不应有每一趟都询问一下数据库的,因为那太耗数据库的性质了。

using System.Linq;

化解方案:在业务层里先把具备的公司名称及相应的公司ID1次性读取出来,然后存放到1个Key和Value的键值对里,然后实现只要把三个公司的名字传进去,就足以获得此公司对应的商号ID,就如查字典一样。对,大家得以采纳字典Dictionary操作那么些数据。

缓解方案:在业务层里先把具备的店铺名称及相应的店铺ID一回性读取出来,然后存放到3个Key和Value的键值对里,然后达成只要把一个小卖部的名字传进去,就足以拿走此集团相应的店堂ID,就像是查字典一样。对,大家得以应用字典Dictionary操作那么些多少。

namespace DictionarySorting

演示:SetKeyValue()方法相应于从数据Curry读取到了企业音讯。

示范:SetKeyValue()方法相应于从数据Curry读取到了合营社音讯。

{

金沙注册送58 3金沙注册送58 4View Code

 1 /// <summary>
 2 /// 定义Key为string类型,Value为int类型的一个Dictionary
 3 /// </summary>
 4 /// <returns></returns>
 5 protected Dictionary<string, int> SetKeyValue()
 6 {
 7 Dictionary<string, int> dic = new Dictionary<string, int>();
 8 dic.Add("公司1", 1);
 9 dic.Add("公司2", 2);
10 dic.Add("公司3", 3);
11 dic.Add("公司4", 4);
12 return dic;
13 }
14 
15 
16 /// <summary>
17 /// 得到根据指定的Key行到Value
18 /// </summary>
19 protected void GetKeyValue()
20 {
21 Dictionary<string, int> myDictionary = SetKeyValue();
22 //测试得到公司2的值
23 int directorValue = myDictionary["公司2"];
24 Response.Write("公司2的value是:" + directorValue.ToString());
25 }

class Program

 1 /// <summary>
 2 
 3 /// 定义Key为string类型,Value为int类型的一个Dictionary
 4 
 5 /// </summary>
 6 
 7 /// <returns></returns>
 8 
 9 protected Dictionary<string, int> SetKeyValue()
10 
11 {
12 
13 Dictionary<string, int> dic = new Dictionary<string, int>();
14 
15 dic.Add("公司1", 1);
16 
17 dic.Add("公司2", 2);
18 
19 dic.Add("公司3", 3);
20 
21 dic.Add("公司4", 4);
22 
23 return dic;
24 
25 }
26 
27 /// <summary>
28 
29 /// 得到根据指定的Key行到Value
30 
31 /// </summary>
32 
33 protected void GetKeyValue()
34 
35 {
36 
37 Dictionary<string, int> myDictionary = SetKeyValue();
38 
39 //测试得到公司2的值
40 
41 int directorValue = myDictionary["公司2"];
42 
43 Response.Write("公司2的value是:" + directorValue.ToString());
44 
45 }

{

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的骨干用法。假若

急需:今后要导入一堆数量,这么些多少中有3个称为集团的字段是我们数据Curry早已存在了的,最近我们必要把每一种店家名字转为ID后才存入数据库。

剖析:每导一笔记录的时候,就把要把集团的名字转为公司的ID,这一个不该每一遍都询问一下数据库的,因为这太耗数据库的品质了。

涸泽而渔方案:在业务层里先把具有的铺面名称及相应的营业所ID一回性读取出来,然后存放到1个Key和Value的键值对里,然后实现只要把3个小卖部的名字传进去,就足以拿走此公司对应的商店ID,就像查字典一样。对,大家能够应用字典Dictionary操作那么些数量。

以身作则:SetKeyValue()方法相应于从数据Curry读取到了商店音讯。

/// <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();
//测试获得公司二的值
int directorValue = myDictionary[“公司2”];
Response.Write(“公司2的value是:” + directorValue.ToString());
}

 

相关文章

网站地图xml地图