如何识别某些行是否以#txt开头?

时间:2015-10-06 05:36:38

标签: c#

我有一个文本文件installer_input.txt,在很多行之后,我有一些以product.#product.开头的行。

我想验证第一行是以#product.开头的,如果之后的所有行包含product.且以#开头,那就像{{1}然后检查#product.

中的所有项目

通过这种方式我尝试了这段代码:

checkedListBox2

但是,如果我只有linesInsTemp.Where(x => x.Contains("product.") ) .ToList() .ForEach(item => { for (int i = 0; i < this.checkedListBox2.Items.Count; i++) { this.checkedListBox2.SetItemChecked(i, true); } var index = this.checkedListBox2.Items.IndexOf(item); if (index >= 0) this.checkedListBox2.SetItemChecked(index, true); }); 而没有product.,请点击此框。

在installer_input.ini中,我有类似这样的内容:

#

如果所有行Many rows of text #product.name1 #product.name2 ... #product.nameN Rows with text 前面都有#,则选中所有框。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我认为String.StartsWith方法可以帮到你。您可以将方法重写为

linesInsTemp.Where(x =>x.StartsWith("#product.") )
                .ToList()
                .ForEach(item =>
               {                      
                    for (int i = 0; i < this.checkedListBox2.Items.Count; i++)
                    {
                        this.checkedListBox2.SetItemChecked(i, true);
                    }
                    var index = this.checkedListBox2.Items.IndexOf(item);
                    if (index >= 0)
                        this.checkedListBox2.SetItemChecked(index, true);
                });

<小时/> 更新: 对于以#product / product / prodact /#prodact

开头的所有行,此正则表达式将返回true
linesInsTemp.Where(x => Regex.IsMatch(x, "^(#)?prod(u|a)ct[\\w\\W]*") )
                .ToList()
                .ForEach(function);