1

我定义了一个结构:

public struct STRUC
{
    public int field1;
    public int field2;
    ...
    public int fieldn;
}

现在,我有一个这个结构的列表,List<STRUC> l;我想创建一个数组,从list 中的field2每个中获取。STRUCl

当然,for我完成了一个简单的循环:

int [] arr = new int[l.Count]; 

for(int i=0; i<l.Count; i++)
{
     arr[i] = l[i].field2;
}

但我想用 lambda 来做。

4

2 回答 2

3

你只需要SelectToArray

int[] arr = l.Select(s => s.field2).ToArray();
于 2013-01-30T14:49:30.450 回答
2
var fields = l.Select(x=>x.field2);

你会得到IEnumerable可以迭代的。

foreach(var f in fields) {
    //DO SOMETHING ...
}
于 2013-01-30T14:49:35.127 回答