威尼斯人线上娱乐

【威尼斯人线上娱乐】是三个泛型使用验证,中Dictionary的用法及用途实例

4 4月 , 2019  

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

壹、Dictionary<string, string>是1个泛型

Dictionary<string, string>是1个泛型 

 

行使泛型
下边是用泛型来重写上边的栈,用一个通用的数据类型T来作为2个占位符,等待在实例化时用三个实际的品种来顶替。让我们来看看泛型的威力:



她本身有汇集的作用有时候能够把它看成数组 

  

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>是1个泛型

 

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

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

他本身有集聚的效劳有时候能够把它当作数组

以此类和object达成的类有1齐分裂的界别:

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

经过某1个决然的[key]去找到相应的值 

他的构造是如此的:Dictionary<[key], [威尼斯人线上娱乐,value]>

一.      
他是项目安全的。实例化了int类型的栈,就不能够处理string类型的多寡,别的数据类型也1如既往。

通过某三个势必的[key]去找到呼应的值

举个例子: 

他的性状是存入对象是必要与[key]值1一对应的存入该泛型

二.      
无需装箱和折箱。这么些类在实例化时,依照所盛传的数据类型生费用地代码,本地代码数据类型已规定,所以不用装箱和折箱。

举个例子:

//实例化对象 

因而某三个势必的[key]去找到呼应的值

3.       无需类型转换。

//实例化对象

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

举个例证:

 

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], [【威尼斯人线上娱乐】是三个泛型使用验证,中Dictionary的用法及用途实例。value]>

dic.Add(3, “one”);

//提取成分的办法 

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

经过某多少个势必的[key]去找到相应的值

string c = dic[3];

//一、贰、3是键,分别对应“one”“two”“one” 

string b = dic[2];

 

//一、2、三是键,分别对应“one”“two”“one”

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

string c = dic[3];

举个例子:

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

//注意,键也就是找到对应值的绝无仅有标识,所以不能重复 

//一、二、三是键,分别对应“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"); 

 }

//可是值能够另行

假诺您还看不懂小编最后给您举二个浅显的事例 

//注意,键约等于找到对应值的绝无仅有标识,所以无法再一次

 


有壹缸米,你想在在每1粒上都刻上标记,不重复,也正是“键”当您找的时候11对应不会找错,这正是其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一对应不会找错,那正是以此泛型的键的-作用,而米能够同样,笔者的情致你明白了吗?

Dictionary的中央用法。假若

万1使用.Net Framework 三.5的话,事情就很不难了。呵呵。

若果使用.Net Framework 三.伍的话,事情就很简单了。呵呵。 


须要:今后要导入一群数量,那几个数量中有3个称作公司的字段是我们数据库里已经存在了的,最近大家必要把每一个集团名字转为ID后才存入数据库。

倘使不是的话,照旧友好写排序吧。

1旦不是的话,照旧本身写排序吧。 

c# 对dictionary类举办排序用哪些接口实现

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

威尼斯人线上娱乐 1威尼斯人线上娱乐 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贰次性读取出来,然后存放到3个Key和Value的键值对里,然后实现只要把3个铺面包车型地铁名字传进去,就能够得到此公司对应的商号ID,就像是查字典1样。对,我们能够利用字典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;

 

3、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后才存入数据库。

急需:今后要导入一群数量,那些数量中有1个誉为公司的字段是大家数据Curry曾经存在了的,近期大家必要把各种集团名字转为ID后才存入数据库。

using System.Text;

 

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

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

using System.Linq;

杀鸡取蛋方案:在业务层里先把富有的商店名称及相应的店铺ID三回性读取出来,然后存放到三个Key和Value的键值对里,然后实现只要把三个店铺的名字传进去,就能够收获此集团相应的店堂ID,如同查字典1样。对,大家能够使用字典Dictionary操作那几个多少。

化解方案:在业务层里先把全数的商店名称及相应的商店ID3次性读取出来,然后存放到一个Key和Value的键值对里,然后实现只要把三个店铺的名字传进去,就能够获得此公司相应的集团ID,就如查字典一样。对,大家得以运用字典Dictionary操作这几个多少。

namespace DictionarySorting

以身作则:SetKeyValue()方法相应于从数据Curry读取到了商行信息。

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

{

威尼斯人线上娱乐 3威尼斯人线上娱乐 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三次性读取出来,然后存放到贰个Key和Value的键值对里,然后实现只要把3个卖家的名字传进去,就足以取得此公司相应的专营商ID,就如查字典1样。对,大家得以应用字典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地图