C#數(shù)組中List, Dictionary的相互轉(zhuǎn)換問(wèn)題
本篇文章會(huì)向大家實(shí)例講述以下內(nèi)容:
- 將數(shù)組轉(zhuǎn)換為L(zhǎng)ist
- 將List轉(zhuǎn)換為數(shù)組
- 將數(shù)組轉(zhuǎn)換為Dictionary
- 將Dictionary 轉(zhuǎn)換為數(shù)組
- 將List轉(zhuǎn)換為Dictionary
- 將Dictionary轉(zhuǎn)換為L(zhǎng)ist
首先這里定義了一個(gè)“Student”的類(lèi),它有三個(gè)自動(dòng)實(shí)現(xiàn)屬性。
class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
}
將數(shù)組轉(zhuǎn)換為L(zhǎng)ist
將數(shù)組轉(zhuǎn)換成一個(gè)List,我先創(chuàng)建了一個(gè)student類(lèi)型的數(shù)組。
static void Main (string[] args)
{
//創(chuàng)建數(shù)組
Student[] StudentArray = new Student[3];
//創(chuàng)建創(chuàng)建3個(gè)student對(duì)象,并賦值給數(shù)組的每一個(gè)元素 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"
};
接下來(lái),使用foreach遍歷這個(gè)數(shù)組。
foreach (Student student in StudentArray)
{
Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender);
}
運(yùn)行程序

接下來(lái)將這個(gè)數(shù)組轉(zhuǎn)換為L(zhǎng)ist,我們添加System.Linq命名空間,然后調(diào)用ToList()擴(kuò)展方法。這里我們就調(diào)用StudentArray.ToList()
注意這個(gè)ToList方法的返回類(lèi)型,它返回的是List< Student >對(duì)象,這說(shuō)明我們可以創(chuàng)建一個(gè)該類(lèi)型的對(duì)象來(lái)保存ToList方法返回的數(shù)據(jù)。
List<Student> StudentList = StudentArray.ToList<Student>();
使用foreach從StudentList中獲取所有的學(xué)生資料。
List<Student> StudentList = StudentArray.ToList<Student>();
foreach (Student student in StudentList)
{
Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender);
}
運(yùn)行程序

將List轉(zhuǎn)換為數(shù)組
將List轉(zhuǎn)換為數(shù)組,使用System.Linq命名空間下的ToArray()擴(kuò)展方法。
Student[] ListToArray = StudentList.ToArray<Student>();
使用foreach遍歷學(xué)生資料
foreach (Student student in ListToArray)
{
Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender);
}
運(yùn)行程序

將數(shù)組轉(zhuǎn)換為Dictionary
將數(shù)組轉(zhuǎn)換成Dictionary,使用ToDictionary()擴(kuò)展方法。這里就可以用StudentArray.ToDictonary(
看這個(gè)方法需要的參數(shù),第一個(gè)參數(shù)需要鍵和第二個(gè)參數(shù)需要值。我們知道Dictionary是一個(gè)泛型,它是鍵/值對(duì)類(lèi)型的集合。因此,這里我們用一個(gè)lambda表達(dá)式傳遞Dictionary對(duì)象名稱(chēng)。
StudentArray.ToDictionary(key => key.Id,Studentobj => Studentobj);
這個(gè)ToDictionary方法返回的類(lèi)型是Dictionary 對(duì)象。 其鍵/值對(duì)<int,Student>類(lèi)型,同樣說(shuō)明我們可以創(chuàng)建一個(gè)該類(lèi)型的對(duì)象來(lái)存儲(chǔ)ToDictionary方法得到的數(shù)據(jù)。
Dictionary<int, Student> StudentDictionary = StudentArray.ToDictionary(key => key.Id,Studentobj => Studentobj);
使用foreach從這個(gè)StudentDictionary對(duì)象遍歷學(xué)生資料,如下:
foreach (KeyValuePair<int, Student> student in StudentDictionary)
{
Console.WriteLine("Id = "+student.Key+" "+" Name = "+student.Value.Name+" "+" Gender = "+student.Value.Gender);
}
運(yùn)行程序

將Dictionary轉(zhuǎn)換為數(shù)組
將Dictionary轉(zhuǎn)換成數(shù)組,使用ToArray擴(kuò)展方法。在之前,需要獲取Dictionary對(duì)象的集合中的值,所以我們使用Values屬性的ToArray方法。
Student[] DictionaryToArray = StudentDictionary.Values.ToArray();
使用foreach遍歷學(xué)生資料
foreach (Student student in DictionaryToArray)
{
Console.WriteLine("Id = "+student.Id+" "+" Name = " +student.Name+" "+" Gender = "+student.Gender);
}
運(yùn)行程序

將List轉(zhuǎn)換為Dictionary
之前已經(jīng)創(chuàng)建了一個(gè)StudentList學(xué)生對(duì)象,將StudentList轉(zhuǎn)換為Dictionary我們調(diào)用ToDictionary方法。
Dictionary<int, Student> ListToDictionary = StudentList.ToDictionary(key => key.Id, value => value);
對(duì)于ToDictionary方法的兩個(gè)參數(shù),我們分別通過(guò)鍵和值傳遞其對(duì)象。這里ToDictionary被賦值,并返回了一個(gè)< int,Student >Dictionary 對(duì)象。所以我們創(chuàng)建該類(lèi)型的對(duì)象然后存儲(chǔ)返回的數(shù)據(jù),最后用foreach獲取學(xué)生資料。
foreach (KeyValuePair<int,Student> student in ListToDictionary)
{
Console.WriteLine("Id = "+student.Key+" "+" Name = " +student.Value.Name+" "+" Gender = "+student.Value.Gender);
}
運(yùn)行程序

將Dictionary轉(zhuǎn)換為L(zhǎng)ist
將Dictionary 轉(zhuǎn)換成List調(diào)用ToList方法,之前已經(jīng)創(chuàng)建了一個(gè)StudentDictionary對(duì)象。直接看如何這個(gè)對(duì)象轉(zhuǎn)換到list.
List<Student> DictionaryToList = StudentDictionary.Values.ToList();
foreach (Student student in DictionaryToList)
{
Console.WriteLine("Id = "+student.Id+" "+" Name = "+student.Name+" "+" Gender = "+student.Gender);
}
運(yùn)行程序

以上所述是小編給大家介紹的#數(shù)組中List, Dictionary的相互轉(zhuǎn)換問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
C#解決多IfElse判斷語(yǔ)句和Switch語(yǔ)句問(wèn)題的方法分享
這篇文章主要為大家介紹C#如何使用設(shè)計(jì)模式中的策略模式和委托來(lái)解決多個(gè)IfElse判斷語(yǔ)句和Switch語(yǔ)句,這種替換方式在其他語(yǔ)言也一樣可以做到,感興趣的可以了解一下2022-12-12
C#中WPF內(nèi)存回收與釋放LierdaCracker的實(shí)現(xiàn)
本文主要介紹了C#中WPF內(nèi)存回收與釋放LierdaCracker的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Unity實(shí)戰(zhàn)之制作動(dòng)畫(huà)編輯器
為了更方便地為UI視圖添加動(dòng)畫(huà),將動(dòng)畫(huà)的編輯功能封裝在了UI View類(lèi)中,可以通過(guò)編輯器快速的為視圖編輯動(dòng)畫(huà)。本文將通過(guò)Unity制作一個(gè)動(dòng)畫(huà)編輯器,需要的可以參考一下2022-02-02
C#使用EF連接PGSql數(shù)據(jù)庫(kù)的完整步驟
這篇文章主要給大家介紹了關(guān)于C#使用EF連接PGSql數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
C#動(dòng)態(tài)生成PictureBox并指定圖片的方法
這篇文章主要介紹了C#動(dòng)態(tài)生成PictureBox并指定圖片的方法,實(shí)例分析了C#圖形控件的動(dòng)態(tài)生成及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
c# 數(shù)據(jù)類(lèi)型占用的字節(jié)數(shù)介紹
本篇文章主要是對(duì)c#中數(shù)據(jù)類(lèi)型占用的字節(jié)數(shù)進(jìn)行了詳細(xì)的介紹。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
c# 如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的json解析器
這篇文章主要介紹了c# 如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的json解析器,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07

