我有一个有方法的项目列表,我该如何对所有项目执行此方法?

时间:2012-09-27 15:00:19

标签: c# list

假设我有一个AwsomeClass类的项目列表。此类包含一些属性string StringAstring StringB。它还有一个方法string AwesomeConcatenate()(在这个基本示例中)只返回一个由两个属性组成的新字符串。

有没有办法使用List<AwesomeClass>为每个项目生成AwesomeConcatentate结果的List<string>

我知道我可以使用foreach来做这件事(而这正是我目前所做的),但感觉应该采用更简洁的方法。

2 个答案:

答案 0 :(得分:2)

您可以将Linq与Select方法一起使用,将序列的每个元素投影到新表单中。

var result = list.Select(ac => ac.AwesomeConcatenate()).ToList()

here中的MSDN:

答案 1 :(得分:1)

是的,这就是LINQ的用途!

var stringList = awesomeList.Select(x => x.AwesomeConcatenate()).ToList();

Select()通过将给定方法应用于源序列中的每个元素来创建新序列。