【发布时间】:2012-09-26 08:49:27
【问题描述】:
我写过这样的函数
let GetAllDirectAssignmentsforLists (spWeb : SPWeb) =
spWeb.Lists
|> Seq.cast<SPList>
|> Seq.filter(fun l -> l.HasUniqueRoleAssignments)
|> Seq.collect (fun l -> l.RoleAssignments
|> Seq.cast<SPRoleAssignment>
|> Seq.map(fun ra -> ra.Member)
)
|> Seq.filter (fun p -> p.GetType().Name = "SPUser")
|> Seq.map(fun m -> m.LoginName.ToLower())
我想返回一个元组,其中包含发送管道中的列表名称(取自l.Title)和m.LoginName.ToLower()。
我是否可以从上述管道元素中获取一些东西?
一种方法当然是在管道的第二阶段对返回值进行元组处理,然后将标题一直向下传递....但这会污染代码,所有后续阶段都必须接受并返回元组values 只是为了在最后阶段获取值。
不知道有没有干净简单的方法....
另外,在管道(fun p -> p.GetType().Name = "SPUser") 的第 4 阶段,我可以使用 if here 来比较类型吗?而不是将typename 转换为string 然后匹配字符串?
【问题讨论】:
标签: f#