嗨,我有一个List,我使用foreach来控制此List中的每一行。
如果行中的第一个字符是return =“\ r”,那么我不想将该行添加到ArrayList。
这里是我的代码:
foreach (string line in lines)
{
if (line != string.Empty)
{
string first_charakter = line.Substring(0, 1);
if (first_charakter != "-" || first_charakter != " " || first_charakter != "\r")
{
list_of_programs.Add(line);
}
}
}
答案 0 :(得分:1)
修复并进行少量重构
foreach (string line in lines)
{
if (!string.IsNullOrEmpty(line))
{
if (line[0] != "-" && line[0] != " " && line[0] != "\r")
{
list_of_programs.Add(line);
}
}
}
答案 1 :(得分:1)
您不想包含它们,因此请勿使用&&
,您可以将集合用作查找+ Contains
:
char[] iDontWant = { ' ', '-', '\r' };
if(!iDontWant.Contains(first_charakter))
{
list_of_programs.Add(line);
}
甚至LINQ的所有行:
list_of_programs = lines
.Where(l => !String.IsNullOrEmpty(l) && !iDontWant.Contains(l[0]))
.ToList();