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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (42)

我有一张list的列表。

foo有一个名为Bar的字符串属性。

我想用LINQ得到String[]的distinct Foo的值。加入到“Foo”的名单上。

我该怎么做?

提问于
用户回答回答于

试试这个:

var distinctFooBars = (from foo in foos
                       select foo.Bar).Distinct().ToArray();
用户回答回答于

如果您你要使用Fluent模式,这应该是可行的:

string[] arrayStrings = fooList.Select(a => a.Bar).Distinct().ToArray();
用户回答回答于

使用下面代码:

var bars = Foos.Select(f => f.Bar).Distinct().ToArray();

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

Linq在幕后进行了一些优化,查询一直保持在其查询形式,直到显式需要为止。因此,你可能希望首先将所需的所有内容都构建到查询中,这样就可以完全应用任何可能的优化。

通过计算,我的意思是要求一些明确需要计算的东西,如“count()”或“ToArray()”等等。

扫码关注云+社区

领取腾讯云代金券