C#基础入门 九
C#基础入门 九
集合
- 对于很多应用程序,需要创建和管理相关对象组,有两种方式可以将对象分组,一是创建对象数组,如
object[] obj=new object[3]{1,2.33,"string"};
foreach(object o in obj)
{
Console.WriteLine(o.Tostring());
//output:1 2.33 string
}
但是这样实现有一个缺点,数组的初始化必须要固定数量,即数组的长度一定是常量。所以需要集合。
创建和管理相关对象组的第二种方式就是创建对象集合。集合提供一种灵活的处理方式,与数组不同,处理的对象组可根据程序更改的需要动态的增长和收缩,对于某些集合,您可以为放入该集合的任何对象分配一个“键”,以便使用该键快速检索对象。
集合是类,因此必须声明新集合后,才能向该集合中添加元素。
集合分为两种类型:非泛型集合和泛型集合
- 使用非泛型集合需要引入:System.Collections命名空间
- 使用泛型集合需要引入:System.Collections.Generic命名空间
System.Collections命名空间下的集合类
System.Collections.Generic命名空间下的集合类(图15)
Dictionary
Dictionary<TKey,TValue>称为字典类,表示键和值的集合,其中TKey表示字典中的类型,TValue表示字典中的值类型,Dictionary类实现了ICollection、IEnumerable、IDictionary接口,定义如下:Dictionary<string,int> dic =new Dictionary<string,int>();
Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) ,键必须是唯一的,而值不需要唯一的 ,键和值都可以是任何类型(比如:string, int, 自定义类型,等等) ;通过一个键读取一个值的时间是接近O(1) ,键值对之间的偏序可以不定义。
Dictionary类成员介绍:(图16)
Dictionary具体用法
public static void Main(string[] args)
{
Dictionary<string, int> dic = new Dictionary<string, int>();
dic.Add("zxh",21);
Dictionary<string, string> dic1 = new Dictionary<string, string>();
dic1.Add("张三", "李四");
int n;
bool b=dic.TryGetValue("zxh", out n);
Console.WriteLine(n);
// bool b1 = dic.Remove("zxh");
// Console.WriteLine(b1);
//遍历key
foreach (string key in dic.Keys)
{
Console.WriteLine("Key = {0}", key);
}
//遍历value
foreach (int value in dic.Values)
{
Console.WriteLine("value = {0}", value);
}
//遍历字典
foreach (KeyValuePair<string, int> kvp in dic)
{
Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}
}
- 运行如下图所示(图17)
C#基础入门 九的更多相关文章
- MyBatis基础入门《十九》动态SQL(set,trim)
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...
- MyBatis基础入门《九》ResultMap自动匹配
MyBatis基础入门<九>ResultMap自动匹配 描述: Mybatis执行select查询后,使用ResultMap接收查询的数据结果. 实体类:TblClient.java 接口 ...
- SpringMVC基础入门
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...
- Linux基础入门学习笔记20135227黄晓妍
学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用L ...
- PHP基础入门(三)---PHP函数基础
PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...
- SpringMVC基础入门,创建一个HelloWorld程序
ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...
- PHP基础入门(二)【PHP函数基础】
PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...
- CSS3基础入门02
CSS3 基础入门02 边框相关属性 border-radius 通过这个属性我们可以设置边框圆角,即可以将四个角设置为统一的圆角,也可以单独的设置具体的某一个角的圆角. grammer: borde ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
随机推荐
- RDLC报表系列二
---------------------ReportServer数据库权限表说明------------------ --用户表 select * from Users --角色表 select * ...
- bzoj3802: Vocabulary
Description 给你三个字符串,这些字符串有些单词模糊不可认了,用"?"来代表. 现在你可以用任意英文小写字母来代表它们.要求是使得给定的三个字符串中 所有的"? ...
- [bat]批处理删默认共享和清理垃圾
@echo off net share c$ /del net share d$ /del net share e$ /del net share f$ /del net share g$ /del ...
- 【BZOJ】1057 [ZJOI2007]棋盘制作(悬线法)
题目 传送门:QWQ 分析 先把题目给出的矩阵变换一下,如果$ a[i][j] $中$ i+j \mod 2 = 1 $那么就对$ a[i][j] $取一下反. 接着就是求原图中最大的0.1子矩阵 详 ...
- pm无力的话
1. 先这样做吧, 等不行再改 2. 用户的需求不明确, 他们对于自己的业务也不明白, 现在是我们在帮助他们缕清自己的业务, 这个迭代的过程中,有很多问题,我们程序员既不能参与到业务, 也不能猜测业务 ...
- 接口自动化(二)--操作Excel获取需要数据
这一部分的内容记述一下对Excel表格的操作,本实战中的测试用例是由Excel来管理的,因此操作Excel是重要的一部分. 再次贴出这张图,所有的测试用例都在这个sheet内,请求数据真实存放在jso ...
- 8种常被忽视的SQL错误用法
作者:一杯甜酒 原文:https://blog.csdn.net/u012562943/article/details/71403500 sql语句的执行顺序: FROM <left_table ...
- Putty使用密钥登陆SSH
平时工作学习必须要使用Windows,在SSH远程连接软件里Putty算是用得比较顺手的,而且很小巧. 但是每次输入密码很麻烦,还容易输错,OpenSSH可以利用密钥来自动登陆,如此一来方便了不少.配 ...
- 《OpenCL异构并行编程实战》补充笔记散点,第一至四章
▶ 总体印象:适合 OpenCL 入门的书,有丰富的代码和说明,例子较为简单.先把 OpenCL 代码的基本结构(平台 → 设备 → 上下文 → 命令队列 → 创建缓冲区 → 读写缓冲区 → 编译代码 ...
- OpenMP n 体问题
▶ <并行程序设计导论>第六章中讨论了 n 体问题,分别使用了 MPI,Pthreads,OpenMP 来进行实现,这里是 OpenMP 的代码,分为基本算法和简化算法(引力计算量为基本算 ...