如何迭代从 QueryHelpers.ParseQuery 获得的 Dictionary<string, StringValues> 集合?

How do I iterate over a Dictionary<string, StringValues> collection obtained from QueryHelpers.ParseQuery?

当我打电话时

QueryHelpers.ParseQuery(uri.Query);

它returns

Dictionary<string, StringValues>

当我在 Visual Studio“本地”window 中查看此集合时,我看到如下内容:

Count = 4

{[q, {qOne, qTwo}]}
"q"
{qOne, qTwo}

{[selection, {sOne, sTwo}]}
"selection"
{sOne, sTwo}

{[color, {cOne, cTWo}]}
"color"
{cOne, cTwo}

{[option, {oOne, oTwo}]}
"option"
{oOne, oTwo}

如果我查看 Microsoft documentationStringValues,它说:

GetEnumerator() - Retrieves an object that can iterate through the individual strings in this StringValues.

这告诉我我应该能够做这样的事情:

Dictionary<string, StringValues> queryString = QueryHelpers.ParseQuery(uri.Query);

foreach(string key in queryString.Keys){
    Console.WriteLine("KEY: " + key);
    foreach(string value in queryString.Value[key].GetEnumerator()){
        Console.WriteLine("VALUE: " + value);
    }
}

但是没有任何选项 queryString.Value[key] 我需要这样做。

那么,如何迭代这个特定的 Dictionary<string, StringValues> 集合?

Dictionary<string, StringValues> queryStrings = QueryHelpers.ParseQuery(uri.Query);

foreach(var stringValues in queryString.Values){
foreach(var value in stringValues)
Console.WriteLine("VALUE: " + value);
}

如果您需要钥匙:

Dictionary<string, StringValues> queryStrings = QueryHelpers.ParseQuery(uri.Query);

foreach(var key in queryString.Keys){
    Console.WriteLine("KEY: " + key);
    foreach(var value in queryString[key]){
        Console.WriteLine("VALUE: " + value);
    }
}