ICollection & lt; T>到字符串数组(使用字符串属性)
本文关键字:字符串 数组 属性 lt ICollection | 更新日期: 2023-09-27 18:16:28
我有一个Thing
的ICollection
。Thing
具有string
属性Name
。我想在我的ICollection
中获得所有Name
的数组。我知道我可以通过遍历集合并构建数组来做到这一点,但是是否有更简洁的方法来使用lambda表示法?
当然,LINQ让你很容易做到这一点:
string[] names = things.Select(x => x.Name).ToArray();
当然,如果你只是要迭代它,你不需要ToArray
部分:
IEnumerable<string> names = things.Select(x => x.Name);
或者你可以用ToList
:
List<string>
List<string> names = things.Select(x => x.Name).ToList();
在所有这些情况下,您都可以使用var
而不是显式声明变量类型-为了清晰起见,我在这里只包含了类型。
使用ToList
可以比使用ToArray
更有效,因为ToArray
的最后一步涉及从可能过大的缓冲区复制到大小合适的数组。