gpt4 book ai didi

c# - 使用 Linq 选择多个属性

转载 作者:行者123 更新时间:2023-11-30 19:54:21 25 4
gpt4 key购买 nike

假设我们有一个 Line Point startPoint 定义的类和 Point endPoint .

如果我有这些线的列表,我怎样才能将它们中的所有点提取到一个 List<Point> 中?使用 LINQ

这是我目前所拥有的:

IList<Point> points1 = lines.Select(o => o.StartPoint).ToList();
IList<Point> points2 = lines.Select(o => o.EndPoint).ToList();

IList<Point> points = points1.Concat(points2).ToList();

最佳答案

如果你想要更短的方式,你可以这样做:

var points = lines.SelectMany(l => new[] { l.StartPoint, l.EndPoint }).ToList();

但是,您当前的代码无疑更具可读性,但更重要的是,不会为您迭代的每一行创建一个数组。

但是,您不需要为每个集合调用ToList(),您可以简单地写:

var points = lines.Select(l => l.StartPoint).Concat(lines.Select(l => l.EndPoint)).ToList();

关于c# - 使用 Linq 选择多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42434988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com