[英]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.