所以,我有一个看起来像这样的文本文件:
[hello]Hi
[hello]welcome back
[hello]Hello sir
[goodbye]goodbye sir
[goodbye]until next time
...
以下是代码的一部分:
string[] responseLines = File.ReadAllLines(@"responses.txt");
Random rand = new Random();
string response;
case "hello":
chatBox.Items.Add(Me);
response = responseLines[rand.Next(responseLines.Length)];
JARVIS.SpeakAsync(response);
chatBox.Items.Add("Jarvis: " + response);
break;
问题是我想找到包含[hello]
的行,然后随机选择其中一行。
答案 0 :(得分:3)
而不是
string[] responseLines = File.ReadAllLines(@"responses.txt");
使用
string[] responseLines = File.ReadAllLines(@"responses.txt").Where(s => s.Contains("[hello]")).ToArray();
答案 1 :(得分:0)
在读取文件中的所有字符串后,将它们分成两个不同的列表:
string[] responseLines = System.IO.File.ReadAllLines(@"responses.txt");
List<string> helloStrings = responseLines.Where<string>(str => str.StartsWith("[hello]")).Select(str => str.Replace("[hello]", "")).ToList<string>();
List<string> goodByeStrings = responseLines.Where<string>(str => str.StartsWith("[goodbye]")).Select(str => str.Replace("[goodbye]", "")).ToList<string>();
现在从你需要的列表中选择一个随机元素