2011-05-14 36 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