从列表中的每个结构中获取一个字段,并使用lambda表达式创建一个数组

时间:2013-01-30 14:48:06

标签: c# lambda

我定义了一个结构:

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

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

肯定有一个简单的for - 循环我已经完成了:

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

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

但我想用lambda做。

2 个答案:

答案 0 :(得分:3)

您只需要SelectToArray

int[] arr = l.Select(s => s.field2).ToArray();

答案 1 :(得分:2)

var fields = l.Select(x=>x.field2);

您将获得可以迭代的IEnumerable

foreach(var f in fields) {
    //DO SOMETHING ...
}