2014-06-12 22 views
1

嗨我有一个列表,我使用foreach来控制此列表中的每一行。如果这是一个返回“ r”,我如何控制字符串中的第一个字符?

如果该行中的第一个字符是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'。改为使用通用的“列表”。 –

回答

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'? – DonBoitnott

+0

是的,这是错字,固定 –

相关问题