已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
昨天关门了。
Improve this question
我有一个List<System.DateTime> MonthlyDates
我想在不迭代的情况下将MonthlyDates
转换为List<(,)>
因此,如果MonthlyDates
是contains(忘记这些是字符串,它们已被解析为DateTime
)
..."7/31/17", "8/31/17", "9/29/17", "10/31/17", "11/30/17", "12/29/17"...
我想要一个新的日期对List
,如下所示:
("7/31/17", "8/31/17") , ("8/31/17", "9/29/17"), ("9/29/17", "10/31/17"), ("10/31/17", "11/30/17"), ...
从List<T>
到List <(T,T)>
的转换
2条答案
按热度按时间eiee3dmh1#
如果真的需要,可以在末尾添加
.ToList()
,但您通常会发现跳过它可以获得更好的性能。eufgjt7s2#
您可以使用LINQ以延迟的方式转换数据。LINQ查询变量本身只存储查询命令。查询的实际执行被延迟,直到您通过
foreach
或将查询具体化为某些集合或结果的方法(如ToList
,ToArray
,Count
等)迭代查询变量。所以你可以使用下一个查询:
Zip
方法将指定的函数应用于两个序列的相应元素,产生一个结果序列。在这个例子中,我们使用monthlyDates
两次作为两个集合,偏移量为1个元素。这允许相邻项的集合按顺序迭代,将它们组合成一个集合。