1. Array,List,Dictionary的定义与用途
在C#中,Array、List和Dictionary是常用的数据存储结构。它们各自有不同的特点和用途。
1.1 Array
Array(数组)是一种线性数据结构,用于存储固定大小的相同类型元素的集合。数组的长度是固定的,无法动态改变。数组可以通过索引访问和修改元素。
下面是一个创建和使用数组的示例:
int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
Console.WriteLine(numbers[0]); // 输出:1
numbers[0] = 10;
Console.WriteLine(numbers[0]); // 输出:10
1.2 List
List(列表)是一种动态数组,可以在运行时添加、删除和修改元素。和数组相比,List没有固定的长度限制,可以根据需要动态调整大小。
下面是一个创建和使用List的示例:
List<string> fruits = new List<string>();
fruits.Add("apple");
fruits.Add("banana");
fruits.Add("orange");
Console.WriteLine(fruits[0]); // 输出:apple
fruits[0] = "grape";
Console.WriteLine(fruits[0]); // 输出:grape
1.3 Dictionary
Dictionary(字典)是一种键值对集合,每个键都唯一。可以通过键来访问值。字典通常用于存储大量的数据,并且可以高效地根据键查找值。
下面是一个创建和使用Dictionary的示例:
Dictionary<int, string> students = new Dictionary<int, string>();
students.Add(1, "Tom");
students.Add(2, "Mary");
students.Add(3, "John");
Console.WriteLine(students[1]); // 输出:Tom
students[1] = "Jerry";
Console.WriteLine(students[1]); // 输出:Jerry
2. Array,List,Dictionary之间的相互转换
2.1 Array和List的相互转换
Array和List之间的相互转换可以通过使用数组和列表的构造函数或方法来实现。
2.1.1 Array转换为List
Array可以通过List的构造函数将其转换为List。
int[] numbers = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>(numbers);
上述代码将数组numbers转换为列表list。
2.1.2 List转换为Array
List可以通过ToArray()方法将其转换为Array。
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
int[] numbers = list.ToArray();
上述代码将列表list转换为数组numbers。
2.2 List和Dictionary的相互转换
List和Dictionary之间的相互转换可以通过使用LINQ来实现。
2.2.1 List转换为Dictionary
List可以通过ToDictionary()方法将其转换为Dictionary。
List<KeyValuePair<int, string>> list = new List<KeyValuePair<int, string>>()
{
new KeyValuePair<int, string>(1, "Tom"),
new KeyValuePair<int, string>(2, "Mary"),
new KeyValuePair<int, string>(3, "John")
};
Dictionary<int, string> dictionary = list.ToDictionary(item => item.Key, item => item.Value);
上述代码将列表list转换为字典dictionary,其中列表的每个元素是一个键值对。
2.2.2 Dictionary转换为List
Dictionary可以通过ToList()方法将其转换为List。
Dictionary<int, string> dictionary = new Dictionary<int, string>()
{
{ 1, "Tom" },
{ 2, "Mary" },
{ 3, "John" }
};
List<KeyValuePair<int, string>> list = dictionary.ToList();
上述代码将字典dictionary转换为列表list,其中列表的每个元素是一个键值对。
总结
在本文中,我们学习了C#中Array、List和Dictionary的定义和用途。我们还学习了如何将Array转换为List,List转换为Array,List转换为Dictionary,以及Dictionary转换为List。这些转换可以帮助我们在不同的场景中使用不同的数据存储结构,提高代码的灵活性和效率。