不推荐使用F#List.first,新方法是什么

时间:2009-12-12 00:16:17

标签: f#

我正在移植CTP 1.9.6.8中的一些旧F#代码

代码使用List.first

List.first (fun x -> if x.Date = d then Some(x) else None)

List.first已被弃用。用于实现相同功能的当前方法是什么。

我查看了发行说明,但未找到任何具体的变更参考。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:7)

尝试List.pick

List.pick (fun x -> if x.Date = d then Some(x) else None)

答案 1 :(得分:3)

@JaredPar是对的。

请注意,F#库文档位于:

http://msdn.microsoft.com/en-us/library/ee353567(VS.100).aspx

具体来说,List模块在这里:

http://msdn.microsoft.com/en-us/library/ee353738(VS.100).aspx

并在该页面上搜索“第一个”显示了通常的嫌疑人。

答案 2 :(得分:1)

@JaredPar对List.pick的建议是正确的,但如果该元素不存在则会引发KeyNotFoundException

你可以使用 List.tryPick如果您希望在两种情况下都找到option,则找到并找不到。

它的用法是相同的:

List.tryPick (fun x -> if x.Date = d then Some(x) else None)