zoukankan      html  css  js  c++  java
  • 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);
    }

    运行程序

    希望本文对你有帮助 

  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/sdxlz666/p/10881162.html
Copyright © 2011-2022 走看看