C#数组中List, Dictionary的相互转换问题

作者:mrr 时间:2022-11-03 00:10:37 

本篇文章会向大家实例讲述以下内容:

  • 将数组转换为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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

接下来将这个数组转换为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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

将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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

将数组转换为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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

将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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

将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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

将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);
}

运行程序

C#数组中List, Dictionary的相互转换问题

以上所述是小编给大家介绍的#数组中List, Dictionary的相互转换问题网站的支持!

标签:c#,list,dictionary,转换
0
投稿

猜你喜欢

  • Android编程基础之获取手机屏幕大小(DisplayMetrics应用)示例

    2023-09-26 17:57:43
  • Android高级图片滚动控件实现3D版图片轮播器

    2022-03-14 23:36:30
  • C# 4.0 大数的运算--BigInteger的应用详解

    2022-02-02 06:40:05
  • C#/VB.NET 实现彩色PDF转为灰度PDF

    2021-07-23 08:23:49
  • Java基础之Spring5的核心之一IOC容器

    2022-06-04 07:44:14
  • Java 8 Function函数式接口及函数式接口实例

    2022-04-13 14:55:05
  • 从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate

    2023-05-31 20:37:20
  • SpringBoot中的PUT和Delete请求使用

    2022-01-22 19:33:32
  • Java mongodb连接配置实践

    2022-05-02 11:50:56
  • java必学必会之this关键字

    2021-11-16 09:47:12
  • C#泛型详解及关键字作用

    2023-04-07 20:23:12
  • Android编程之DatePicker和TimePicke简单时间监听用法分析

    2022-07-04 00:42:24
  • C#中label内容显示不全、不完整的解决方法

    2022-09-13 02:43:46
  • C# .NET中Socket简单实用框架的使用教程

    2023-09-16 07:59:19
  • SpringMVC 上传文件 MultipartFile 转为 File的方法

    2021-07-06 00:28:12
  • JAVA如何调用wsdl过程详解

    2021-08-12 22:00:18
  • C#迷你猜数实例分析

    2023-11-02 16:10:49
  • Android实现APP秒表功能

    2022-11-13 13:58:26
  • c#执行excel宏模版的方法

    2022-11-15 12:04:03
  • 如何解决修改StaticText的字体

    2023-05-25 08:40:14
  • asp之家 软件编程 m.aspxhome.com