// ❌ 性能差string message = "Hello " + name + ", you are " + age + " years old";
// ✅ 性能好,可读性好string message = $"Hello {name}, you are {age} years old";
// 大量拼接用 StringBuildervar sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.Append(i).Append(", ");
}
string result = sb.ToString();
集合类的使用:忘记手动数组管理
总想用数组然后自己管理大小?这是 C++ 后遗症。在 C# 里,优先使用泛型集合。
// ❌ C++ 思维int[] array = newint[10];
int count = 0;
// ... 手动管理插入、删除// ✅ C# 方式
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Remove(1);
// 字典的使用
Dictionary<string, int> dict = new Dictionary<string, int>();
dict["key"] = 10;
// 安全访问if (dict.TryGetValue("key", outintvalue)) {
// 使用 value
}
// 集合初始化器(语法糖)var numbers = new List<int> { 1, 2, 3, 4, 5 };
var person = new Person { Name = "John", Age = 30 };
集合使用法则:
查询多、修改少 → 用 List<T>
快速查找 → 用 Dictionary<TKey, TValue>
需要排序 → 用 SortedDictionary 或 SortedList
唯一性要求 → 用 HashSet<T>
先进先出 → 用 Queue<T>
后进先出 → 用 Stack<T>
现代 C# 特性:拥抱变化
=>、var、$" 这些符号必须学,它们是提高生产力的利器。
阶段 1:立即掌握
// 1. var 类型推断var list = new List<string>(); // 编译器知道类型var count = 10; // 知道是 int// 2. 属性初始化器publicclassPerson {
publicstring Name { get; set; } = "Unknown";
publicint Age { get; set; }
}
// 3. 字符串插值
Console.WriteLine($"Result: {Calculate()}");
// 4. 空条件运算符string name = person?.Name ?? "Default";
阶段 2:尽快学习
// 1. 模式匹配(C# 7+)if (obj isint i && i > 0) {
// 直接使用 i
}
// 2. switch 表达式string result = values switch {
1 => "One",
2 => "Two",
_ => "Many"
};
// 3. 记录类型(C# 9+)publicrecordPerson(string FirstName, string LastName);
// 4. with 表达式var newPerson = person with { LastName = "Smith" };