包含字符串一部分的字符串索引(一个字)

时间:2014-02-27 17:22:35

标签: list indexof

我试图读取一个大文件,所以我认为不是使用数组循环而是决定使用列表,但是我在搜索包含需要搜索的单词的行时遇到了一些困难。这是我的代码

    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返回任何内容的唯一方法。

2 个答案:

答案 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
    }
}