如何在Visual Studio中搭建LeetCode的C#解题环境及相关问题咨询
Visual Studio中搭建LeetCode C#控制台环境指南
一、目标框架选择建议
- 优先选择**.NET 6及以上版本**(包括.NET 7、.NET 8):这类版本支持顶级语句特性,无需手动编写完整的
Program类和Main方法结构,代码更简洁,适合快速刷题测试;同时LeetCode官方的C#运行环境已支持.NET 6,选择同版本框架能最大程度避免本地与平台的兼容性差异。 - 若习惯传统完整类结构,.NET 5及以下版本也可使用,但不推荐——新框架的语法糖能大幅减少冗余代码,提升刷题效率。
二、Program类代码编写示例
1. .NET 6+ 顶级语句写法(推荐)
直接编写解法方法和测试代码,编译器会自动生成Main方法,无需包裹在Program类中:
// 定义LeetCode题目的解法方法 int[] TwoSum(int[] nums, int target) { var numMap = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++) { int complement = target - nums[i]; if (numMap.ContainsKey(complement)) { return new int[] { numMap[complement], i }; } numMap[nums[i]] = i; } return Array.Empty<int>(); } // 测试用例 int[] testNums = {2, 7, 11, 15}; int testTarget = 9; int[] result = TwoSum(testNums, testTarget); Console.WriteLine($"输出结果:[{string.Join(", ", result)}]");
2. 传统Main方法结构写法(兼容旧框架)
若使用.NET 5及以下版本,需编写完整的Program类,注意被Main调用的方法需添加static修饰(因为Main是静态方法):
using System; using System.Collections.Generic; namespace LeetCodePractice { class Program { static void Main(string[] args) { // 调用解法方法并执行测试 int[] testNums = {2, 7, 11, 15}; int testTarget = 9; int[] result = TwoSum(testNums, testTarget); Console.WriteLine($"输出结果:[{string.Join(", ", result)}]"); } // 可被Main调用的静态解法方法 static int[] TwoSum(int[] nums, int target) { var numMap = new Dictionary<int, int>(); for (int i = 0; i < nums.Length; i++) { int complement = target - nums[i]; if (numMap.ContainsKey(complement)) { return new int[] { numMap[complement], i }; } numMap[nums[i]] = i; } return Array.Empty<int>(); } } }
刷题小技巧
- 每个题目可单独编写为一个静态方法,在
Main中按需调用测试; - 多添加边界测试用例,通过
Console.WriteLine快速验证结果是否符合预期; - 可复用通用工具方法(如数组打印、链表遍历等),减少重复代码。
内容的提问来源于stack exchange,提问作者Codinger
相关产品推荐
相关产品推荐

