【发布时间】:2011-08-27 15:23:00
【问题描述】:
我正在尝试在 F# 中使用 Youtube .Net API,但在尝试访问返回给 userPlaylists.Entries 属性的 IEnumerable 时遇到了问题。下面是我测试过的 c# 代码,但是我似乎无法从 f# 中的 IEnumerable 集合中返回单个项目。
Feed<Playlist> userPlaylists = request.GetPlaylistsFeed("username");
var p = userPlaylists.Entries.Single<Playlist>(x => x.Title == "playlistname");
Entries 解析为 IEnumerable<Playlist> Feed<PlayList>.Entries 类型
IEnumerable 似乎在 F# 中表示为一个序列,但我似乎无法弄清楚如何返回正确类型的单个项目,我得到的最接近的是:
let UserPlaylists = Request.GetPlaylistsFeed("username")
let pl = UserPlaylists.Entries |>
Seq.tryPick(fun x -> if x.Title="playlistname" then Some(x) else None)
但是,这似乎返回一种“播放列表选项”而不是“播放列表”。谁能建议从 IEnumerable 中检索单个项目的正确方法?
【问题讨论】:
-
如果在seq中找不到想要的item怎么办?