请考虑以下内联代码:
string.Join(",", context.Request.Headers.ToArray())
Run Code Online (Sandbox Code Playgroud)
如果上面的Headers结构是a Dictionary(string, string),则上面的代码将输出以下内容:
[MyHeaderKey1, MyHeaderVal1],[MyHeaderKey2, MyHeaderVal2]
Run Code Online (Sandbox Code Playgroud)
但是,Dictionary值为a,string[]因此以下输出:
[MyHeaderKey1, System.String[]],[MyHeaderKey2, System.String[]]
Run Code Online (Sandbox Code Playgroud)
我需要能够像第一个代码示例一样生成输出,但是Dictionary与string[]值相对应.如果我只接受Dictionary- string[]值的第一项,那就没关系.这可以用内联C#完成吗?
是.使用Linq Select.
string.Join(",", context.Request.Headers.Select(x => string.Format("[{0}, {1}]", x.Key, FormatThisArray(x.Value))))
Run Code Online (Sandbox Code Playgroud)
编辑:由于OP提到值为string[],x.Value如上所述的默认值可能无法产生所需的输出.我不确定OP如何格式化字典项的值,并假设FormatThisArray是一个格式化数组的函数.