2011-05-14 55 views
0

有人能給我看一個「傳統」計算示例,例如:發現人民歲的平均水平,使用循環的方法,然後一個例子使用lambda表達式Lambda表達式示例

回答

2

讓我們來看看

class People 
{ 
    int Age {get;set;} 
}; 

var people = new List<People>() {...}; 

方法循環

int sum = 0; 
foreach(var p in people) 
sum += p.Age; 
int average = sum/people.Count; 

拉姆達

int average = people.Average(p => p.Age); 
+0

哇很有區別.. – Den 2011-05-14 15:41:00

+0

是的。 lambda是一個強大的功能。這就是爲什麼他們被添加到.NET和現在的C++ – 2011-05-14 15:46:41

1
class Human 
{ 
    public int Age { get; set; } 
} 

IEnumerable<Human> people = ... 
int age = people.Average(p => p.Age); 
+0

abatishchev @你知道怎麼做「傳統」的方法,例如使用循環? – Den 2011-05-14 15:39:56

+1

@Den:試試[自己找](http://www.google.ru/search?q=c%23+average+-linq);) – abatishchev 2011-05-14 15:41:19

1
var ages = new int[] { 10, 12, 14 }; 
var sum = 0; 
var count = 0; 

// loop 
foreach (var age in ages) { 
    count++; 
    sum += age; 
} 
var average = sum/count; 

// lambda 
ages.Average(x => x); // this is where it'd be something like x.age if it was an array of objects instead of ints