私はこのような関数を書きました
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()
。
上記のパイプ要素から何かを取得するためのクリーンウェイはありますか?
もちろん、1つの方法は、パイプの2番目のステージで戻り値をタプルしてから、タイトルを最後まで渡すことです。しかし、それはコードを汚染し、後続のすべてのステージは、タプル値を受け入れて返す必要があります。価値を得るための最終段階のために。
クリーンで簡単な方法があるのだろうか…。
また、パイプラインのステージ4で、(fun p -> p.GetType().Name = "SPUser")
ここでタイプを比較する場合に使用できますか?typename
文字列に変換してからstring
一致させるのではなく?