繁体   English   中英

F#-我可以将Seq.map应用于System.DataSet.DataTableCollection吗?

[英]F# - can I apply Seq.map to System.DataSet.DataTableCollection?

这看起来似乎应该可行,但不起作用:

let dataSet = new DataSet()
let dataTable1 = dataSet.Tables.Add("Bob")
let dataTable1 = dataSet.Tables.Add("Bilf")
let tableNames = Seq.map (fun (x:DataTable) -> x.TableName) dataSet.Tables

它给出以下错误:

The type 'DataTableCollection' is not compatible with the type 'seq<DataTable>'

尝试手动投射时,相同的错误仍然存​​在:

let tableNames = Seq.map (fun (x:DataTable) -> x.TableName) (seq<DataTable> dataSet.Tables)

有什么方法可以对DataTableCollection执行F#样式的序列操作,还是必须首先手动将DataTableCollection转换为F#批准的集合类型?

您正在寻找Seq.cast ,它正是您要寻找的-从IEnumerable转换为IEnumerable<'t>

dataSet.Tables
|> Seq.cast<DataTable>
|> Seq.map (fun x -> x.TableName) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM