集合类型 List 与 Dictionary
List<T> 和 Dictionary<K,V> 是 C# 里最常用的两个泛型集合。List<T> 相当于动态数组,支持自动扩容;Dictionary<K,V> 是键值对集合,按键查找的时间复杂度是 O(1)。
刚学时最常踩的坑是用 ContainsKey 再索引器取值:if (dict.ContainsKey(key)) return dict[key]; 这其实查了两次字典。正确做法是用 TryGetValue,一次查找同时拿到值和是否存在的结果。List 遍历删除元素时不能直接在 foreach 里 Remove,要用 for 倒序遍历或 RemoveAll。
性能方面:1) 提前知道容量时用 new List<T>(capacity) 避免多次扩容;2) Dictionary 默认容量小,大数据量时指定初始容量;3) 不要在循环里反复 ToString() 拼接。
代码示例
// List<T> 常用操作
var list = new List<int> { 1, 2, 3 };
list.Add(4);
list.AddRange(new[] { 5, 6 });
list.Remove(3);
list.Sort();
// Dictionary<K,V> 安全取值
var dict = new Dictionary<string, int>
{
["apple"] = 10,
["banana"] = 20
};
// 不推荐:查两次
if (dict.ContainsKey("apple"))
Console.WriteLine(dict["apple"]);
// 推荐:TryGetValue 一次查找
if (dict.TryGetValue("apple", out int count))
Console.WriteLine($"apple 有 {count} 个");
// 遍历
foreach (var kv in dict)
Console.WriteLine($"{kv.Key}: {kv.Value}");
学习小结:以上是我学习这个知识点时的笔记和心得。技术学习没有捷径,多写多练多踩坑,自然就掌握了。如果这篇笔记对你有帮助,欢迎继续看看其他文章。