C#數組,List,Dictionary,IQueryable,IEnumerable的相互轉換

本篇文章會向你們實例講述如下內容: javascript

  • 將數組轉換爲List
  • 將List轉換爲數組
  • 將數組轉換爲Dictionary
  • 將Dictionary 轉換爲數組
  • 將List轉換爲Dictionary
  • 將Dictionary轉換爲List
  • IQueryable,IEnumerable,List相互轉換

首先這裏定義了一個「Student」的類,它有三個自動實現屬性。html

class Student 
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Gender { get; set; }
    }

將數組轉換爲Listjava

將數組轉換成一個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遍歷這個數組。post

foreach (Student student in StudentArray)
 {
   Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+"  "+" Gender = "+student.Gender);
 }

運行程序this

接下來將這個數組轉換爲List,咱們添加System.Linq命名空間,而後調用ToList()擴展方法。這裏咱們就調用StudentArray.ToList()spa

注意這個ToList方法的返回類型,它返回的是List< Student >對象,這說明咱們能夠建立一個該類型的對象來保存ToList方法返回的數據。3d

List<Student> StudentList = StudentArray.ToList<Student>();

使用foreach從StudentList中獲取全部的學生資料。code

List<Student> StudentList = StudentArray.ToList<Student>();

foreach (Student student in StudentList)
 {
   Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender);
 }

運行程序htm

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

運行程序

 

IQueryable,IEnumerable,List相互轉換

IQueryable,IEnumerable均可以經過ToList()轉換爲類型。

PassUser.ToList();

若是須要反向轉換,有兩個很好用的方法AsQueryable(),AsEnumerable(),能夠順利將List轉換爲IQueryable,IEnumerable。

List<MO> ListUser = new List<MO>();
PassUser = ListUser.AsQueryable();

 

但願本文對你有幫助

 

********轉載:https://www.cnblogs.com/Yesi/p/6229522.html

相關文章
相關標籤/搜索