使用Dictionary键值对判断字符串中字符出现次数

本文深入解析C#中Dictionary的使用方法,包括键值对的添加、读取及遍历,演示了如何用Dictionary统计字符串中字符的出现次数,以及如何存储复杂类型的值如数组和自定义类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍Dictionary

使用前需引入命名空间 using System.Collections.Generic

Dictionary里面每一个元素都是一个键值对(由两个元素组成:键和值)

键必须是唯一的,而值不需要唯一

键和值都可以是任何类型(比如:string,int,自定义类型等)

通过一个键读取一个值的时间接近0(1)

键值对之间的偏序可以不定义

使用Dictionary

使用dictionary判断字符串中字符出现次数
var dic = new Dictionary<char, int>();
string str = "welcome to china,and bei jing huan ying ni";
for (int i = 0; i < str.Length; i++)
{
    if (!dic.ContainsKey(str[i]))//判断是否包含指定键名
    {
        dic.Add(str[i], 1);
    }
    else
    {
        dic[str[i]]++;//如果这个键值对中存在这个元素,就把个数加1
    }
}
//利用一个键值对KeyValuePair来访问这个元素
foreach (KeyValuePair<char, int> item in dic)
{
    Console.WriteLine("字符{0} {1}在这个句子中出现了{2}次", item.Key, (int)item.Key, item.Value);
}
Console.ReadKey();

键值对中value是数组
//键值对中value是数组
var dic = new Dictionary<string, string[]>();
string[] HuBei = { "wuhan", "tianmen", "xiantao" };
string[] GuangDong = { "guangzhou", "shenzhen", "foshan" };
dic.Add("HB", HuBei);
dic.Add("GD", GuangDong);
Console.WriteLine(dic["HB"][0]);
Console.WriteLine(dic["GD"][1]);
Console.ReadKey();

键值对中value是类
static void Main(string[] args)
{          
    //键值对中value是类
    var stuList = new Dictionary<string, Student>();
    for (int i = 0; i < 3; i++)
    {
        Student stu = new Student();
        stu.Num = i.ToString();
        stu.Name = "Student" + i.ToString();
        stuList.Add(i.ToString(), stu);
    }
    foreach (var student in stuList)
    {
        Console.WriteLine("Output : Key {0}, Num : {1}, Name : {2}",
        student.Key, student.Value.Num, student.Value.Name);
    }
    Console.ReadKey();
}

public class Student
{
    public string Num { get; set; }
    public string Name { get; set; }
}

End!

转载于:https://www.cnblogs.com/gygg/p/11609166.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值