c# - 获取由元组列表的第一个值组成的数组

标签 c# list loops iterator tuples

在我的 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/

相关文章:

c# - LINQ To 对象 GroupBy 方法

c# - 线程间通信时间

python - 对以小写字母或大写字母开头的带重音符号的名称进行排序

r - 计算一个列表中出现在另一个列表中的元素数量

php - 使用PHP循环多次查询MYSQL数据库

c# - 是否有任何 C# 或 C++ 框架可以帮助录制桌面应用程序的视频?

c# - 正则表达式匹配后如何选择n个字符

java - Collection.toArray() 方法,详细信息

java - 图形绘制组件和循环问题

jquery如何使用for循环添加对象?