C# 从LinQ中分离键值

C# 从LinQ中分离键值,c#,linq,json.net,C#,Linq,Json.net,我需要来自SharedToDomains和SharedFromDomains的密钥和值数据。我想打印这些值 var LogResponse = DeserializeFromJson<AttributeContainer>(sLogResponse); public class AttributeContainer { public Dictionary<string, int> MimeTypes { get; set; } public Dictio

我需要来自SharedToDomains和SharedFromDomains的密钥和值数据。我想打印这些值

var LogResponse = DeserializeFromJson<AttributeContainer>(sLogResponse);

public class AttributeContainer
{
    public Dictionary<string, int> MimeTypes { get; set; }
    public Dictionary<string, Domain> SharedToDomains { get; set; }
    public Dictionary<string, Domain> SharedFromDomains { get; set; }
}
快速方法:

 foreach( var s in SharedToDomains.Keys )
 {
       string key = s;
       string val = SharedToDomains[s].ToString();
 }
如果您确实想使用linq:

var outputList = from s in SharedToDomains select new { key=s.Key, value=s.Value };
快速方法:

 foreach( var s in SharedToDomains.Keys )
 {
       string key = s;
       string val = SharedToDomains[s].ToString();
 }
如果您确实想使用linq:

var outputList = from s in SharedToDomains select new { key=s.Key, value=s.Value };

循环字典的值集合,并将域打印到屏幕上。我已将其放入一个方法中,以便您以后可以重复使用:

private void PrintValues(Dictionary<string, Domain> dict)
{
    foreach(KeyValuePair<string, Domain> kvp in dict)
    {
        Console.WriteLine(kvp.Key); //Key
        Console.WriteLine(kvp.Value.ToString()); //Value
    }
}

//Usage:
PrintValues(SharedToDomains);
PrintValues(SharedFromDomains);

循环字典的值集合,并将域打印到屏幕上。我已将其放入一个方法中,以便您以后可以重复使用:

private void PrintValues(Dictionary<string, Domain> dict)
{
    foreach(KeyValuePair<string, Domain> kvp in dict)
    {
        Console.WriteLine(kvp.Key); //Key
        Console.WriteLine(kvp.Value.ToString()); //Value
    }
}

//Usage:
PrintValues(SharedToDomains);
PrintValues(SharedFromDomains);

有了Json数组,我想要像这样的LogResponse.SharedFromDomains[Value]。Documents,有了Json数组,我想要像这样的LogResponse.SharedFromDomains[Value]。Documents,这样的方法有点过分了,使用KeyValuePair也是如此。我首先在ValueCollection上使用了一个循环,但在您的回答中看到他也需要密钥。这就是为什么我改变了它。如果要多次使用同一代码,最好使用一种方法:我用的是这段代码,我想用它的结果来获取值。这样做的方法有点过火,就像使用KeyValuePair一样。我首先在ValueCollection上使用了一个循环,但在您的回答中看到他也需要密钥。这就是为什么我改变了它。如果要多次使用同一代码,最好使用一种方法:我正在使用这段代码,我想要结果来获取值。我正在使用这段代码我想要结果来获取数据我正在使用这段代码,我想要结果来获取值。我正在使用这段代码我想要结果来获取数据我正在使用这段代码,我希望得到获取值所需的结果。如果需要key,还可以使用SharedToDomains.ToList.ForEachx=>Console.WriteLinex.key+|+x.Value;嗨,我想在sb中添加键值。追加{;sb。AppendFormat@DT_RowId:{0},1;某人追加;某人。AppendFormat@DT_RowClass:{0},rowClass;sb.追加;sb。AppendFormat@0:{0},+key+;sb.Append,;sb。AppendFormat@1: {0},+键+;sb.Append},;我使用的是这段代码,我需要它的结果来获取值。如果您需要key,也可以使用SharedToDomains.ToList.ForEachx=>Console.WriteLinex.key+|+x.Value;嗨,我想在sb中添加键值。追加{;sb。AppendFormat@DT_RowId:{0},1;某人追加;某人。AppendFormat@DT_RowClass:{0},rowClass;sb.追加;sb。AppendFormat@0:{0},+key+;sb.Append,;sb。AppendFormat@1: {0},+键+;sb.Append},;我正在使用这段代码,我希望它的结果能够获取值。