C#从类列表中提取字段列表

时间:2009-06-15 07:25:56

标签: c# linq

我有一个特定类的元素列表。该类包含一个字段。

class Foo {public int i;}
List<Foo> list;

我想将列表中所有项目的字段提取到一个新列表中。

List<int> result = list.ExtractField (e => e.i); // imaginary

肯定有多种方法可以做到这一点,但我还没有找到一个漂亮的解决方案。我认为linq可能有所帮助,但我不确定究竟是怎么回事。

1 个答案:

答案 0 :(得分:20)

只需:

List<int> result = list.Select(e => e.i).ToList();

List<int> result = list.ConvertAll(e => e.i);

后者效率更高(因为它知道最终的大小),但只适用于列表和数组而不是任意序列。