C#使用集合组织相关数据

简介: C#使用集合组织相关数据

一、为什么使用集合?

数组的长度是固定的,对数组中的元素进行动态添加和删除的时候很麻烦。集合可以更好的进行对元素添加和删除

二、ArrayList集合:

1.类似于数组,但是可以直观的动态维护。

2.位于System.Collections命名空间里面

3.ArrayList是动态可维护的,所以在声明的时候可以不指定大小

4.声明ArrayList的语法:

(1)ArrayList arr = new ArrayList();

(2)ArrayList arr = new ArrayList(2);

5.给集合中添加元素:

add()

eg:arr.Add(“值”);

6.获取集合中的指定元素(根据集合的下标获取)

arr[0];

7.遍历集合中的元素:

(1)使用for循环来获取

for (int i = 0; i < array.Count;i++ ) {

Console.WriteLine(“元素是:”+array[i]);

}

(2)使用foreach来获取

foreach(object o in array){

Console.WriteLine(“元素是:”+o);

}

8.获取集合的长度:

集合名.Count;

9.删除集合中的元素:

(1)根据索引删除

RemoveAt(int index)

eg:arr.RemoveAt(1);

(2)删除指定对象名的元素

Remove(object value);

eg:arr.Remove(“张三”);

(3)清空集合里面所有的元素:

Clear();

arr.Clear();

10.需要注意的是,将ArrayList里面的元素删除时,集合的索引会随之改变。

三、HashTable集合:

1.存储的是键值对形式的数据

2.所属的命名空间是:System.Collections;

3.声明HashTable集合:

HashTable ht = new HashTable();

4.给集合中添加元素:

Add(object key,object value);

key:键

value:值

eg:ht.Add(1,“一”);

5. 获取集合中的元素:

ht[键]

eg:ht[1];

6.遍历hashTable集合:

(1)遍历键:

foreach(object o in ht.Keys){

Console.WriteLine(o);

}

(2)遍历值:

foreach(object o in ht.Values){

Console.WriteLine(o);

}

7.删除HashTable集合中的元素:

Remove(); //根据键删除值

eg:ht.Remove(1);

四、泛型集合List:

1.可以对集合中的元素类型进行约束

2.T代表元素的类型

3.声明泛型集合:

List list = new List();

4.获取元素,添加元素,删除元素,遍历元素均和ArrayList一样。

5.List和ArrayList的区别:

(1)相同点:添加、删除、访问、遍历元素都一样

(2)异同点:List对保存的元素做类型约束,而ArrayList不限制类型。List添加、读取元素的时候无需做装箱、拆箱操作,而ArrayList在添加和读取元素的时候需要装箱和拆箱操作。

五、Dictionary泛型集合:

1.存放的是键值对的元素,声明的同时约束键和值的类型。

2.声明:

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

3.给集合里面添加元素:

Add()方法:

dic.Add(1,“中国”);

4.根据键来获取值:

dic[1];

5.根据键删除值:

dic.Remove(1);

6.遍历的集合:

foreach(值的类型 遍历 in 集合.Values){

Console.WriteLine(s);

}

六、泛型类:

1.创建泛型类:

public class Test{

public T id; //id的类型取决于Test中的T

}

2.调用泛型类:

Test t = new Test();

t.id = 10; //值是int类型

3.泛型的优点:

(1)性能高

(2)类型安全

(3)实现代码的重要

相关文章
|
8天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
2月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
81 2
|
3月前
|
测试技术 API C#
C#使用Bogus生成测试数据
C#使用Bogus生成测试数据
54 1
|
1月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
1月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
24 1
|
2月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
48 1
|
1月前
|
中间件 数据库连接 API
C#数据分表核心代码
C#数据分表核心代码
36 0
|
2月前
|
存储 C# 开发者
枚举与结构体的应用:C#中的数据组织艺术
在C#编程中,枚举(`enum`)和结构体(`struct`)是非常重要的数据类型。枚举用于定义命名常量集合,提高代码可读性;结构体则封装相关数据字段,适合小型数据集。本文从基本概念入手,探讨它们的使用技巧、常见问题及解决方案,帮助开发者更好地利用这些特性构建健壮的应用程序。
43 8
|
1月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
366 0
|
3月前
|
存储 C# 数据库
解决C#对Firebase数据序列化失败的难题
在游戏开发中,Unity结合Firebase实时数据库为开发者提供强大支持,但在C#中进行数据序列化和反序列化时常遇难题。文章剖析了数据丢失或反序列化失败的原因,并给出解决方案,包括使用`JsonUtility`、确保字段标记为`[Serializable]`以及正确配置网络请求。示例代码演示了如何在Unity环境中实现Firebase数据的序列化和反序列化,并通过设置代理IP、Cookies和User-Agent来增强网络请求的安全性。这些技巧有助于确保数据完整传输,提升开发效率。
解决C#对Firebase数据序列化失败的难题