2014-06-12 46 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

是的,這是錯字,固定 –

相關問題