如何从内存列表中获取一系列不同的属性值?

Dan*_*nor 4 .net c# linq performance filtering

我有一个Foo列表.

Foo有一个名为Bar的字符串属性.

我想使用LINQ在Foo列表中为Foo.Bar 获取不同值的字符串[] .

我怎样才能做到这一点?

cha*_*rit 5

我会去lambdas ...更好的方式

var bars = Foos.Select(f => f.Bar).Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)

与@lassevk发布的内容相同.

我还要补充一点,你可能希望在最后一刻之前不要转换为数组.

LINQ在幕后进行了一些优化,查询保留在查询表单中直到明确需要.因此,您可能希望首先在查询中构建所需的所有内容,以便完全应用任何可能的优化.

通过评估,我的意思是要求明确要求评估的内容,如"Count()"或"ToArray()"等.