在我的 C# 代码中,我有一个元组列表。元组本身由两个 double
类型的数字和一个 LocalDate
类型的对象组成。
List<Tuple<double, double, LocalDate>> tupleList = new List<Tuple<double, double, LocalDate>>();
例如,列表可能如下所示。
1, 10, LocalDate1
12, 310, LocalDate2
31, 110, LocalDate3
创建仅包含每个列表项的第一个 double 值的 double 组的优雅方法是什么?
因此,我想要一个仅由列表中的 LocalDate
对象组成的 ArrayList。应保留顺序。
预期的结果应该是:
double[] => [1, 12, 31]
double[] => [10, 310, 110]
ArrayList<> => [LocalDate1, LocalDate2, LocalDate3]
我知道通常的方法是在 for 循环中遍历列表并通过此循环创建数组。但是,我认为应该有更简洁优雅的方式。
最佳答案
Linq 是正确的选择:
var firstValues = tupleList.Select(x => x.Item1).ToList();
这会将元组列表投影到仅第一个项目的列表中,并保持它们的顺序。第二个、第三个、第n个也是一样。
如果您需要一个数组,只需调用 ToArray()
而不是 ToList()
。
关于c# - 获取由元组列表的第一个值组成的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57290839/