如何用C#从TXT文件读取随机一行并赋值给变量用于后续处理
解决方案
由于你的TXT文件仅包含几十条条目,直接读取所有行再随机选取是高效且简单的方案。以下是完善后的完整代码:
using System; using System.IO; public class CPHInline { public bool Execute() { // 获取文件所在文件夹路径 string pathF = CPH.GetGlobalVar<string>("File path", true); // 组合完整文件路径 string path = $"{pathF}Medium.txt"; string message = string.Empty; // 检查文件是否存在,避免异常 if (File.Exists(path)) { // 读取所有行到字符串数组 string[] allLines = File.ReadAllLines(path); // 确保文件非空 if (allLines.Length > 0) { // 生成随机索引,范围为0到行数-1 Random random = new Random(); int randomIndex = random.Next(allLines.Length); // 赋值随机行到message变量 message = allLines[randomIndex]; } else { message = "文件为空,请先添加内容!"; } } else { message = "指定文件不存在,请检查路径!"; } // 后续消息发送与TTS朗读逻辑 string voice = CPH.GetGlobalVar<string>("TTS speaker", true); CPH.SendMessage(message, false); CPH.TtsSpeak(voice, message, false); return true; } }
核心逻辑说明
File.ReadAllLines(path):一次性读取文件所有行到字符串数组,完全适配几十条条目的小文件场景。Random.Next(allLines.Length):生成合法范围内的随机整数作为数组索引,确保不会出现数组越界问题。- 新增文件存在性和非空判断,避免因文件缺失或空内容导致程序抛出异常。
内容的提问来源于stack exchange,提问作者StefanBraun
相关产品推荐
相关产品推荐

