C# Dictionary 的遍历方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Dictionary 的遍历方法相关的知识,希望对你有一定的参考价值。

首先创建了一个类 class Class1
class Class1

private string name;

public string Name

get return name;
set name = value;

private int age;

public int Age

get return age;
set age = value;


public Class1(string name,int age)

this.Name = name;
this.Age = age;


////////////////////////////////// Form窗体 /////////////////////////////////
private void button1_Click(object sender, EventArgs e)

Dictionary<string, Class1> cl = new Dictionary<string, Class1>();
Class1 s1 = new Class1("张三",25);
Class1 s2 = new Class1("李四",26);
Class1 s3 = new Class1("家六",27);
cl.Add(s1.Name, s1);
cl.Add(s2.Name, s2);
cl.Add(s3.Name, s3);
foreach (KeyValuePair<string, Class1> a in ???????)

MessageBox.Show(a.Value.ToString());


想遍历Value的值
foreach (KeyValuePair<string, Class1> a in ???????)
这里该怎么写?
还有就是 我想通过key来查询出单个的key所对应的Value该怎么写???

private void button1_Click(object sender, EventArgs e)

Dictionary<string, Class1> cl = new Dictionary<string, Class1>();
Class1 s1 = new Class1("张三", 25);
Class1 s2 = new Class1("李四", 26);
Class1 s3 = new Class1("家六", 27);
cl.Add(s1.Name, s1);
cl.Add(s2.Name, s2);
cl.Add(s3.Name, s3);
foreach (KeyValuePair<string, Class1> a in cl)

MessageBox.Show(a.Value.Age.ToString() + " " + a.Value.Name.ToString());

foreach (KeyValuePair<string, Class1> a in cl)

if (a.Key == s1.Name)
MessageBox.Show(a.Value.Age.ToString() + " " + a.Value.Name.ToString());

参考技术A 那你用for循环也可以啊
foreach (类型 实体 in 对象)
参考技术B Dictionary
这个是实体类,也就是说在这个类当中所有人方法和属性都是已经实现了的。
class
Test

public
string
GetTest()

return
"aaa";

参考技术C dictionary<int
,string
>
furits=new
dictionary<int
,string
>();furits.add(1,"apple");furits.add(2,"banana");foreach(int
i
in
furits.keys)
console.WirtleLine("keys:0,values:1",i,furits[i]); ------------------------------第二种foreach(string
i
in
furits.values)
console.WirtleLine("values:0",i);
参考技术D 取keys值:furits.keys[i];
取values值:furits[furits.keys[i]]

C# Dictionary 函数解析及使用方法

  1. 要使用Dictionary集合,需要导入C#泛型命名空间

     System.Collections.Generic(程序集:mscorlib)

  2.  Dictionary的描述

    1、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成

    2、任何键都必须是唯一的

    3、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值

    4、Key和Value可以是任何类型(string,int,custom class 等) 

  3.  Dictionary常用用法:以 key 的类型为 int , value的类型为string 为例

      1、创建及初始化

     Dictionary<int,string>myDictionary=newDictionary<int,string>();

      2、添加元素

    myDictionary.Add(1,"C#");

    myDictionary.Add(2,"C++");

    myDictionary.Add(3,"ASP.NET");技术图片

    myDictionary.Add(4,"MVC");

      3、通过Key查找元素

    if(myDictionary.ContainsKey(1))

    {

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

     }

      4、通过KeyValuePair遍历元素

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

    {

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

    }

     5、仅遍历键 Keys 属性

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

    foreach(intkeyinkeyCol)

    {

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

    }

     6、仅遍历值 Valus属性

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

    foreach(stringvalueinvalueCol)

    {

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

    }

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

    myDictionary.Remove(1);

    if(myDictionary.ContainsKey(1))

    {

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

    }

    else

    {

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

     }

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

      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:      获取与指定的键相关联的值。

    转自:https://www.cnblogs.com/jaejaking/p/5301288.html

以上是关于C# Dictionary 的遍历方法的主要内容,如果未能解决你的问题,请参考以下文章

c# Dictionary的遍历和排序(转)

c#怎么遍历dictionary

C#中如何遍历一个Dictionary一部分内容

C# Dictionary<>和HashTable中遍历Keys怎么写?

如何遍历并删除Dictionary集合内容

如何遍历并删除Dictionary集合内容