C#数组中List, Dictionary的相互转换问题
本篇文章会向大家实例讲述以下内容:
- 将数组转换为List
- 将List转换为数组
- 将数组转换为Dictionary
- 将Dictionary 转换为数组
- 将List转换为Dictionary
- 将Dictionary转换为List
首先这里定义了一个“Student”的类,它有三个自动实现属性。
class Student { public int Id { get; set; } public string Name { get; set; } public string Gender { get; set; } }
将数组转换为List
将数组转换成一个List,我先创建了一个student类型的数组。
static void Main (string[] args) { //创建数组 Student[] StudentArray = new Student[3]; //创建创建3个student对象,并赋值给数组的每一个元素 StudentArray[0] = new Student() { Id = 203, Name ="Tony Stark", Gender ="Male" }; StudentArray[1] = new Student() { Id = 205, Name="Hulk", Gender = "Male" }; StudentArray[2] = new Student() { Id = 210, Name ="Black Widow", Gender="Female" };
接下来,使用foreach遍历这个数组。
foreach (Student student in StudentArray) { Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender); }
运行程序
接下来将这个数组转换为List,我们添加System.Linq命名空间,然后调用ToList()扩展方法。这里我们就调用StudentArray.ToList()
注意这个ToList方法的返回类型,它返回的是List< Student >对象,这说明我们可以创建一个该类型的对象来保存ToList方法返回的数据。
List<Student> StudentList = StudentArray.ToList<Student>();
使用foreach从StudentList中获取所有的学生资料。
List<Student> StudentList = StudentArray.ToList<Student>(); foreach (Student student in StudentList) { Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender); }
运行程序
将List转换为数组
将List转换为数组,使用System.Linq命名空间下的ToArray()扩展方法。
Student[] ListToArray = StudentList.ToArray<Student>();
使用foreach遍历学生资料
foreach (Student student in ListToArray) { Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender); }
运行程序
将数组转换为Dictionary
将数组转换成Dictionary,使用ToDictionary()扩展方法。这里就可以用StudentArray.ToDictonary(
看这个方法需要的参数,第一个参数需要键和第二个参数需要值。我们知道Dictionary是一个泛型,它是键/值对类型的集合。因此,这里我们用一个lambda表达式传递Dictionary对象名称。
StudentArray.ToDictionary(key => key.Id,Studentobj => Studentobj);
这个ToDictionary方法返回的类型是Dictionary 对象。 其键/值对<int,Student>类型,同样说明我们可以创建一个该类型的对象来存储ToDictionary方法得到的数据。
Dictionary<int, Student> StudentDictionary = StudentArray.ToDictionary(key => key.Id,Studentobj => Studentobj);
使用foreach从这个StudentDictionary对象遍历学生资料,如下:
foreach (KeyValuePair<int, Student> student in StudentDictionary) { Console.WriteLine("Id = "+student.Key+" "+" Name = "+student.Value.Name+" "+" Gender = "+student.Value.Gender); }
运行程序
将Dictionary转换为数组
将Dictionary转换成数组,使用ToArray扩展方法。在之前,需要获取Dictionary对象的集合中的值,所以我们使用Values属性的ToArray方法。
Student[] DictionaryToArray = StudentDictionary.Values.ToArray();
使用foreach遍历学生资料
foreach (Student student in DictionaryToArray) { Console.WriteLine("Id = "+student.Id+" "+" Name = " +student.Name+" "+" Gender = "+student.Gender); }
运行程序
将List转换为Dictionary
之前已经创建了一个StudentList学生对象,将StudentList转换为Dictionary我们调用ToDictionary方法。
Dictionary<int, Student> ListToDictionary = StudentList.ToDictionary(key => key.Id, value => value);
对于ToDictionary方法的两个参数,我们分别通过键和值传递其对象。这里ToDictionary被赋值,并返回了一个< int,Student >Dictionary 对象。所以我们创建该类型的对象然后存储返回的数据,最后用foreach获取学生资料。
foreach (KeyValuePair<int,Student> student in ListToDictionary) { Console.WriteLine("Id = "+student.Key+" "+" Name = " +student.Value.Name+" "+" Gender = "+student.Value.Gender); }
运行程序
将Dictionary转换为List
将Dictionary 转换成List调用ToList方法,之前已经创建了一个StudentDictionary对象。直接看如何这个对象转换到list.
List<Student> DictionaryToList = StudentDictionary.Values.ToList(); foreach (Student student in DictionaryToList) { Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender); }
运行程序
以上所述是小编给大家介绍的#数组中List, Dictionary的相互转换问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
栏 目:C#教程
下一篇:C# 表达式树Expression Trees的知识梳理
本文标题:C#数组中List, Dictionary的相互转换问题
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/6048.html
您可能感兴趣的文章
- 01-10C#通过反射获取当前工程中所有窗体并打开的方法
- 01-10C#实现Winform中打开网页页面的方法
- 01-10C#实现由四周向中心缩小的窗体退出特效
- 01-10Extjs4如何处理后台json数据中日期和时间
- 01-10C#中DataGridView常用操作实例小结
- 01-10C#编程获取资源文件中图片的方法
- 01-10asp.net中XML如何做增删改查操作
- 01-10C#利用反射技术实现去掉按钮选中时的边框效果
- 01-10c# ArrayList的使用方法小总结
- 01-10C#中查找Dictionary中的重复值的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 01-10delphi制作wav文件的方法
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10SublimeText编译C开发环境设置
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-11ajax实现页面的局部加载
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10C#中split用法实例总结
- 04-02jquery与jsp,用jquery