C#如何创建包含文件每一行内容的字符串数组?
问题解答
File.ReadLines(file).ToArray()的工作逻辑完全符合你的需求:它会读取文件里的每一行内容,把每一行单独作为一个字符串元素存入数组。比如你提供的文件内容,生成的数组会是:
wordlist[0] = "TEST"wordlist[1] = "WORD"wordlist[2] = "TEST2"
你的代码存在几个潜在问题,可能导致运行异常或不符合预期:
- 未处理文件不存在的场景:如果
File.Exists(file)返回false,wordlist会处于未初始化状态,直接进入for循环会触发空引用异常。 - 字符串比对默认大小写敏感:如果用户输入"word"(小写),会匹配不到数组里的"WORD"。
- 循环写法冗余,没必要手动遍历判断。
修正后的代码示例:
string file = @"C:\file"; // 注意路径格式,原代码的@"C:ile"是转义错误,正确写法是@"C:\file" string wordInput = "WORD"; // 替换为实际用户输入 bool check = false; if (File.Exists(file)) { string[] wordlist = File.ReadLines(file).ToArray(); // 直接用Contains判断,简洁高效 check = wordlist.Contains(wordInput); // 如果需要忽略大小写,改用以下写法 // check = wordlist.Any(w => string.Equals(w, wordInput, StringComparison.OrdinalIgnoreCase)); } else { // 处理文件不存在的情况,比如提示用户 Console.WriteLine("指定文件不存在"); }
内容的提问来源于stack exchange,提问作者davide sofer
相关产品推荐
相关产品推荐

