C#常见的几种集合 ArrayList,Hashtable,List<T>,Dictionary<K,V> 遍历方法对比
作者:天尽头的那片海 发布时间:2021-07-25 17:00:04
标签:C#,集合,遍历
一、先来分别介绍一下ArrayList,Hashtable,List<T>,Dictionary<K,V>
1.ArrayList动态数组,保存值的时候比较好用
2.Hashtable以存储键值对的方式存储。value,和key
3.List<T> 和 Dictionary<K,V> 应该是泛型吧,可以保存实体类
二、各种集合的遍历方法演示
1.ArrayList
ArrayList list = new ArrayList();
//for遍历
for (int i = 0; i < list.Count; i++)
{
SE se = (SE)list[i];
Console.WriteLine(se.Name);
}
//foreach遍历
foreach (Object obj in list)
{
SE se = (SE)list[i];
Console.WriteLine(se.Name);
}
2.Hashtable
Hashtable list = new Hashtable();
//Hashtable不能用索引访问,所以遍历一个Hashtable只能用foreache()方法
//遍历Key
foreach (Object obj in list.Keys)
{
Console.WriteLine((string)obj);
}
//遍历Value
foreach (Object obj in list.Values)
{
SE se = (SE)obj;
Console.WriteLine(se.Name);
}
//同时遍历,DictionaryEntry一个结构
foreach (DictionaryEntry en in list)
{
Console.WriteLine(se.Keys);
COnsole.WriteLine(((SE)en.Value).Name);
}
3.List<T>
//for遍历
for (int i = 0; i < list.Count; i++)
{
//遍历时不需要类型转换
Console.WriteLine(list[i]);
}
//foreach遍历
foreach (SE obj in list)
{
//遍历时不需要类型转换
Console.WriteLine(obj);
}
4.Dictionary<K,V>
//遍历Values
foreach (SE se in list.Values)
{
//遍历时不需要类型转换
Console.WriteLine(se);
}
//同时遍历
foreach (KeyValuePair<string, SE> en in list)
{
Console.WriteLine(en.Key);
Console.WriteLine(en.Value.Name);
}
//KeyValuePair<TKey,TValue>是一个泛型结构
0
投稿
猜你喜欢
- A:首先先看下一个简单的面试题斐波那契数列计算数组{1,1,2,3,5,8.......} 第30位值规律:1 1 从第三项开始,每一项都是
- 这篇文章主要介绍了Java ForkJoin框架的原理及用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- MyBatis全局配置文件MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(propertie
- java获取文件的inode标识符,如果文件被删除或者重命名,inode的值会发生变更,因此可以在第一次加载File之后记录inode,后续
- 本文实例讲述了Java Swing实现让窗体居中显示的方法。分享给大家供大家参考,具体如下:Swing组件是AWT组建的增强组件,是功能强大
- 前言春节要到了,看惯了前端各种小游戏,确实做得很好,很精致。但是我也要为后端程序员稍微做一点贡献,做一款java版本的【年兽大作战】。这个游
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin
- 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异
- 废话不多说了,给大家贴关键代码了,具体代码如下所示:import java.io.File;import java.io.FileOutpu
- 前言:线程安全是并发编程中的重要关注点,造成线程安全问题的主要原因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据
- 今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中
- Unity IPostBuildPlayerScriptDLLsUnity IPostBuildPlayerScriptDLLs是Unity
- JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可
- rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用
- 本文实例讲述了Android中断线程的处理方法。分享给大家供大家参考。具体方法如下:我现在对一个用户注册的功能1.用ProgressDial
- 尝试了各种防止中文乱码的方式,但是还是乱码;最后还是细节问题导致;解决方式:以及俩种方式是百度的,我的问题不是这俩块1.在requestMa
- 很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地、Intranet 或 I
- cpu是时分(time division)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是
- 本文实例讲述了java GUI编程之paint绘制操作。分享给大家供大家参考,具体如下:import java.awt.*;public c
- [LeetCode] 131.Palindrome Partitioning 拆分回文串Given a string s, par