我試着寫在C#一個簡單的Lambda表達式:我的Lambda表達式有什麼錯誤?
int numElements = 3;
string[]firstnames = {"Dave", "Jim", "Rob"};
string[]lastnames = {"Davidson", "Jameson", "Robertson"};
List<Person> people = new List<Person>();
for(int i = 0 ; i < numElements; i++)
{
people.Add(new Person { FirstName = firstnames[i], LastName = lastnames[i] });
}
bool test = people.Contains(p => p.FirstName == "Bob");
我的Lambda表達式以及它們是如何工作的理解還是有點陰涼,我惱火,爲什麼這是不行的......我「M試圖找出如果列表包含一個名稱...
爲什麼不工作? – DaveShaw 2012-02-21 15:33:07
你需要people.Any(....) - 這是需要lamba的LINQ操作符。在IEnumerable .Contains不會將lamba作爲參數。 – 2012-02-21 15:33:53
'「Rob」!=「Bob」',所以'test'最終應該是'false'(一旦你使用'Any',正如詹姆斯所建議的那樣)。而'numElements'應該等於3,而不是10. – stakx 2012-02-21 15:34:31