首页 > 编程语言 >C#字典操作

C#字典操作

时间:2022-09-26 13:24:12浏览次数:45  
标签:Dictionary dictionary C# value dic key 操作 字典

1. 创建一个字典

Dictionary<stirng,int> dictionary = new Dictionary<string,int>();

2. 在字典中添加元素

dictionary.Add("张三",56);

dictionary.Add("李四",21);

dictionary.Add("王五",9);

3. 通过key查找元素,并修改其值

string key= "张三";
if (dictionary.ContainsKey(key))
{
  dictionary[key] = dictionary[key] + 1;
}

4. 在文件中保存字典

在文件中保存字典,必须遍历元素后,将数据保存在字典中,而不是直接保存字典,例如:Write_File(path, Dictionary<string, int> dic)会出现序列化不成功。

方法:

通过KeyValuePair遍历元素

StringBuilder stringBuilder = new StringBuilder();
foreach (KeyValuePair<string, int> dic in dictionary)
{
      stringBuilder.AppendLine("["+dic.Key+","+dic.Value+"]");
}
Write_File(path, stringBuilder.ToString());

仅遍历字典的keys属性

创建一个新的字典,该字典只保存key的字段   Dictionary<string, int>.KeyCollection

Dictionary<string, int>.KeyCollection dic = data.Keys;
foreach(var key in dic)
{
    label.Text = key;
}

 仅遍历字典的values属性

创建一个新的字典,该字典只保存value的字段 Dictionary<string, int>.ValueCollection

Dictionary<string, int>.ValueCollection dic_value = data.Values;
foreach(var value in dic_value)
{
    label_last.Text = value.ToString();
}

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

if (dictionary.ContainsKey("张三"))
{
    data.Remove("张三");
}

移除所有的键和值

dictionary.Clear();

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

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

标签:Dictionary,dictionary,C#,value,dic,key,操作,字典
From: https://www.cnblogs.com/Joyce-mi7/p/16730533.html

相关文章

  • leetcode 208. Implement Trie (Prefix Tree) 实现 Trie (前缀树) (中等)
    一、题目大意Trie(发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。......
  • Scrapy 如何传递 get请求的params
    我们都知道在requests中可以使用requests.get(url,params)的方式传值那么在scrapy中如何传值呢直接看代码fromurllib.parseimporturlencodeparams={'wbtre......
  • [Rxjs] Build a basic application store with Subjects
    Store.jsimport{BehaviorSubject,Subject}from'rxjs';import{map,distinctUntilKeyChanged,scan}from'rxjs/operators';exportclassObservableStore{......
  • EF Core – 7.0 New Features
    前言这篇不会细谈功能,只是一个总链接. 参考Docs–What'sNewinEFCore7.0 BreakingChange我follow EFCore–搭建单侧环境 做了一遍,在运行 dotne......
  • var、let、const三者的区别。
    ES5中作用域有:全局作用域、函数作用域。没有块作用域的概念。ES6中新增了块级作用域。块作用域由{}包括,if语句和for语句里面的{}也属于块作用域。注意:const常用于......
  • C++ 数组指针累加后的偏移量
    typedefstruct_MyStruct{ inta; intb; intc; _MyStruct(){a=0;b=0;c=0;}}MyStruct;intmain(){#if1 MyStruct*st[3]; //数组指针 MyStruct......
  • 今日部分知识点总结———SQL注入,hooks的优缺点,cookies,xxxStorage的区别,BFC,合并二叉
    SQL注入在浏览器页面用户提交数据处,输入特定的字符实现sql语句的篡改,从而对数据库进行操作。比如在一个登录界面,要求输入用户名和密码,可以这样输入实现免帐号登录;用户名......
  • AttributeError: module 'uvloop' has no attribute 'EventPolicy'报错解决办法
    将EventPolicy改为EventLoopPolicy。同时注意自己文件的命名不要与uvloop重复了,笔者暂时没犯这种错误。搜了全网都搜不到,难道没人用吗,幸好看了点源码还能看懂点,并且经实......
  • C# nameof的用法
     最重要的是nameof不会影响性能! nameof主要是解决类成员名做参数替代成员们的字符串做参数,如下:usingSystem;namespacecsharp6{internalclassProgram......
  • oracle数据库用户
    一、系统用户sys和system的区别1、存储的数据的重要性不同【最重要的区别】【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行......