Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 将字典(从C#传递)转换为F中的字符串#_F# - Fatal编程技术网

F# 将字典(从C#传递)转换为F中的字符串#

F# 将字典(从C#传递)转换为F中的字符串#,f#,F#,编辑: 问题解决了。答案是: |> Seq.sortBy (fun (KeyValue(k,v)) -> k) |> Seq.map (fun (KeyValue(k,v)) -> (sprintf "%s:%s" k v)) |> String.concat "," 原始问题: 我正试着做这个的F版本: var postData = "{" + string.Join( ",", sortedParameters.Select

编辑: 问题解决了。答案是:

|> Seq.sortBy (fun (KeyValue(k,v)) -> k)
|> Seq.map (fun (KeyValue(k,v)) -> (sprintf "%s:%s" k v))
|> String.concat ","

原始问题:

我正试着做这个的F版本:

var postData = "{"
   + string.Join(
       ",",
       sortedParameters.Select(item => $"\"{item.Key}\":\"{item.Value}\"").ToList())
   + "}";
我有下面这本来自C#的字典:

我想对其进行排序,然后输出字符串中的所有值,如下所示:

"a":"1", "b":"2", "c":"3"
let Test (values : Dictionary<string, string>) : string =
    |> Seq.sortBy (fun (KeyValue(k,v)) -> k)
    |> Seq.iter (fun (KeyValue(k,v)) -> (sprintf "%s:%s" k v))
所以,我是这样开始的:

"a":"1", "b":"2", "c":"3"
let Test (values : Dictionary<string, string>) : string =
    |> Seq.sortBy (fun (KeyValue(k,v)) -> k)
    |> Seq.iter (fun (KeyValue(k,v)) -> (sprintf "%s:%s" k v))
我不明白错误信息。我的假设是,这将返回一个字符串列表,如:

{
    "a:1", "b:2", "c:3"
}
在下一步,我必须加入一个字符串

显然,事情不是这样的:)


我错过了什么?

你想要的是
Seq.map
,而不是
Seq.iter
。前一个映射,后一个迭代,也就是说,它只是在每个元素上运行函数,期望有一些副作用。好了,现在就知道了:|>Seq.sortBy(fun(KeyValue(k,v))->k)|>Seq.map(fun(KeyValue(k,v))->(sprintf“%s:%s”kv))|>String.concat,“c#->思考的改变仍然需要一些时间:)