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 回答