2013-10-07 70 views
-1

我很早就使用謂詞來查找某個集合中特定的內容。 這裏是我的例子:使用謂詞來查找以特定字母開頭的字符串(C#)

static void FindPersons(string firstLetter) 
     { 
      List<string> names = new List<string>() 
     {"Marcus", "John", "Jesse", "Lance", "Aaron", "Archibald", "Victor" 
     }; 



      List<string> names2 = names.FindAll(a => a.StartsWith(firstLetter)); 

      foreach (var name in names2) 
      { 
       Console.WriteLine(name); 
      } 
     } 

我稱之爲內主要的方法:我不得不使用字符串的第一個字母,因爲StartsWith採用字符串作爲參數(或我可以用字符

FindPersons("a"); 

。和toString()

我怎麼可以這樣使用這種較短的語法做 一個問題 - ?一般情況下,您在工作中使用頻率謂詞集合中找到特定對象 比KS。

+0

_你的問題是什麼?而不是'List.FindAll',你可以使用'names.Where(n => n.StartsWith(firstLetter))''。但是,這並沒有太大的區別。你的第二個問題只是基於意見。 –

+0

Nit挑選:'FindPersons'應該返回列表。 'PrintPeople'應寫入控制檯.. –

+0

'names.FindAll(a => a.StartsWith(firstLetter))。ForEach(Console.WriteLine);' – I4V

回答

1

只要使用Console.WriteLine(string.Join<string>("\n", result));作爲以下方法來做到這一點。

static void FindPersons(string firstLetter) 
    { 
     List<string> names = new List<string>() 
     {"Marcus", "John", "Jesse", "Lance", "Aaron", "Archibald", "Victor" 
     }; 

     List<string> result = names.Where(a => a.StartsWith(firstLetter, StringComparison.InvariantCultureIgnoreCase)).ToList(); 
     Console.WriteLine(string.Join<string>("\n", result)); 

    } 
相關問題