6

.NET 4.5 では、 Environment.GetEnvironmentVariables()は環境変数を非ジェネリックCollections.IDictionaryとして返します。

F# で環境変数をジェネリック コレクションとして取得する方法はありますか?

4

1 に答える 1

16

.NETに、型付きジェネリックコレクションとして環境変数を返すメソッドがあるかどうかはわかりません(このGetEnvironmentVariablesメソッドは.NET 1.1から存在しているため、ジェネリックではありません)。結果を自分で一般的な辞書に変換したい場合は、次のようにすることができます。

let envVars = 
  System.Environment.GetEnvironmentVariables()
  |> Seq.cast<System.Collections.DictionaryEntry>
  |> Seq.map (fun d -> d.Key :?> string, d.Value :?> string)
  |> dict

これは、最初に結果を要素のシーケンスに変換しDictionaryEntry、次にキーと値を抽出して文字列にキャストし、IDictionary<string, string>組み込み関数を使用してビルドしdictます。

于 2012-08-17T23:22:49.423 に答える