Как я могу контролировать первый символ в строке, если это возврат «\ r»?

1

Привет, у меня есть 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);
                        }

                    }
                }
  • 0
    Непонятно, о чем вы спрашиваете. Ваш код работает? Если нет, то в чем проблема? Или вы просите пересмотреть код?
  • 0
    Больше нет необходимости использовать ArrayList . Вместо этого используйте общий List<String> .
Теги:
arraylist
datatable
return

2 ответа

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();
1

исправить и немного рефакторинга

foreach (string line in lines)
{
     if (!string.IsNullOrEmpty(line))
     {
          if (line[0] != "-" && line[0] != " " && line[0] != "\r")
          {
               list_of_programs.Add(line);
          }
     }
 }
  • 0
    IsNotNullOrEmpty : IsNotNullOrEmpty ?
  • 0
    да, это опечатка, исправлено

Ещё вопросы

Сообщество Overcoder
Наверх
Меню