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

Posted

tags:

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

比如说建立了一个类Student包含字段name,age,hobby
用name作为Keys
Dictionary<string, Student> stu = new Dictionary<string, Student>();
stu.Add(s1.Name,s1);
stu.Add(s2.Name,s2);
stu.Add(s3.Name,s3);
添加好了数据 遍历Value可以写
foreach (Student ss in stu.Values)

Student ass = (Student)ssss;
MessageBox.Show(ass.Name.ToString());

那么遍历Keys都时候具体怎么写?
foreach (Student ss in stu.Keys)


参考技术A foreach (Student ss in stu.Values)

//Student ass = (Student)ssss;//这句话没用还是错误的
MessageBox.Show(ss.Name.ToString()); //ass改成ss

那么遍历Keys都时候具体怎么写?
//foreach (Student ss in stu.Keys)//这句话是错误的KEYS是string
foreach (string key in stu.Keys) //这样遍历

MessageBox.Show(key);


本回答被提问者采纳

C#字典 Dictionary 的使用

Dictionary提供快速的基于键值的元素查找。
结构是:Dictionary <[key] , [value] >,当你有很多元素的时候可以用它。
它包含在System.Collections.Generic名控件中。在使用前,你必须声明它的键类型和值类型。
1.字典的初始化
//初始化字典值
//方式1
Dictionary<int, string> dict = new Dictionary<int, string>  
{
    { 1, "Mohan" },
    { 2, "Kishor" },
    { 3, "Pankaj" },
    { 4, "Jeetu" }
};
//方式2
var dict = new Dictionary<string, int>
{
    ["one"] = 1,
    ["two"] = 2,
    ["three"] = 3
};
View Code

2.字典的使用示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo1
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建泛型哈希表,Key类型为int,Value类型为string
            Dictionary<int, string> myDictionary = new Dictionary<int, string>();
            //1.添加元素
            myDictionary.Add(1, "a");
            myDictionary.Add(2, "b");
            myDictionary.Add(3, "c");
            //2.删除元素
            myDictionary.Remove(3);
            //3.假如不存在元素则添加元素
            if (!myDictionary.ContainsKey(4))
            {
                myDictionary.Add(4, "d");
            }
            //4.显示容量和元素个数
            Console.WriteLine("元素个数:{0}",myDictionary.Count);
            //5.通过key查找元素
            if (myDictionary.ContainsKey(1))
            {
                Console.WriteLine("key:{0},value:{1}","1", myDictionary[1]);
                Console.WriteLine(myDictionary[1]);
            }
            //6.通过KeyValuePair遍历元素
            foreach (KeyValuePair<int,string>kvp in myDictionary)
            {
                Console.WriteLine("key={0},value={1}", kvp.Key, kvp.Value);

            }
            //7.得到哈希表键的集合
            Dictionary<int, string>.KeyCollection keyCol = myDictionary.Keys;
                //遍历键的集合
                foreach (int n in keyCol)
                {
                    Console.WriteLine("key={0}", n);
                }
            //8.得到哈希表值的集合
            Dictionary<int, string>.ValueCollection valCol = myDictionary.Values;
                //遍历值的集合
                foreach( string s in valCol)
                {
                Console.WriteLine("value:{0}",s);
                }
            //9.使用TryGetValue方法获取指定键对应的值
            string slove = string.Empty;
            if (myDictionary.TryGetValue(5, out slove))
            {
                Console.WriteLine("查找结果:{0}", slove);
            }
            else
            {
                Console.WriteLine("查找失败");
            }
            //10.清空哈希表
            //myDictionary.Clear();
            Console.ReadKey();
        }
    }
}
View Code

运行结果:

转载于:https://www.cnblogs.com/wwwbdabc/p/11652579.html

以上是关于C# Dictionary<>和HashTable中遍历Keys怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中使用非常大的 Dictionary<>

C#字典 Dictionary 的使用

C# 将 List<string> 转换为 Dictionary<string, string>

在 C# 中是不是有像 Dictionary<> 这样的类,但只有键,没有值?

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

关于c#中Dictionary的使用