Привет, у меня есть List, и я использую foreach для управления каждой строкой в этом списке.
Если первым символом в строке является 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);
}
}
}
Вы не хотите включать их, поэтому не используйте &&
, вы можете использовать коллекцию в качестве поиска + 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();
исправить и немного рефакторинга
foreach (string line in lines)
{
if (!string.IsNullOrEmpty(line))
{
if (line[0] != "-" && line[0] != " " && line[0] != "\r")
{
list_of_programs.Add(line);
}
}
}
IsNotNullOrEmpty
: IsNotNullOrEmpty
?
ArrayList
. Вместо этого используйте общийList<String>
.