我试图读取一个大文件,所以我认为不是使用数组循环而是决定使用列表,但是我在搜索包含需要搜索的单词的行时遇到了一些困难。这是我的代码
public List<string> AWfile = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
if (File.Exists(@"C:\DataFolder\file.txt"))
{
using (StreamReader r = new StreamReader(@"C:\DataFolder\file.txt"))
{
string line;
while ((line = r.ReadLine()) != null)
{
AWfile.Add(line); label1.Text = "ListWritten!"; label1.BackColor = Color.Green;
}
}
}
}
private void button2_Click(object sender, EventArgs e)
{
int linen = AWfile.IndexOf("A102");
label2.Text = Convert.ToString(linen);
}
所以我的问题是,是否有任何方法只搜索列表中某个单词的一部分而不是整个字符串,因为这是.IndexOf返回任何内容的唯一方法。
答案 0 :(得分:1)
您可以尝试以下内容:
var result = list.Select(x => x.Contains("hello")).ToList()
这将生成一个列表,其中包含列表中包含“hello”的所有元素。
如果你只想用这些元素做点什么:
list.Select(x => x.Contains("hello")).ToList().ForEach(x => DoSomething(x));
我希望这会有所帮助
答案 1 :(得分:0)
如果我正确理解您的问题...您正在阅读文件并将每行添加到列表中。然后,您要检查这些行中是否有任何一行包含单词的 part 。
这样做的一种方法是对列表中的每一行进行foreach循环,并检查该行是否包含部分单词。
类似的东西:
foreach(var line in AWFile)
{
if(line.Contains("PartialWordWeWant"))
{
// Do something with the line that contains the word we are looking for
}
}