zoukankan      html  css  js  c++  java
  • C#Array,List,Dictionary的相互转换

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

    • 将Array转换为List
    • 将List转换为Array
    • 将Array转换为Dictionary
    • 将Dictionary转换为Array
    • 将List转换为Dictionary
    • 将Dictionary转换为List

    首先这里定义了一个“Student”的类,它有三个自动实现属性。

    复制代码
    class Student 
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Gender { get; set; }
        }
    复制代码

    将Array转换为List

    将Array转换成一个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转换为Array

    将List转换为Array,使用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);
    }

    运行程序

     

    将Array转换为Dictionary
    将Array转换成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转换为Array
    将Dictionary转换成Array,使用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);
    }

    运行程序

    希望本文对你有帮助

    出处:https://www.cnblogs.com/Yesi/p/6229522.html

    您的资助是我最大的动力!
    金额随意,欢迎来赏!
    款后有任何问题请给我留言。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我。(●'◡'●)

    如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,求打             付款后有任何问题请给我留言!!!

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【Jack_孟】!

  • 相关阅读:
    《Java技术》第一次作业
    第十一次作业
    第十次作业
    第九次作业。
    第八次作业
    第七次作业
    第六次作业
    第五次作业。
    《Java技术》第三次作业--面向对象——继承、抽象类、接口
    《Java技术》第二次作业--面向对象基础
  • 原文地址:https://www.cnblogs.com/mq0036/p/15243183.html
Copyright © 2011-2022 走看看