C#-Lambda/LINQ-字典转换<;字符串,字符串>;[]列出<;字符串[]>;

C#-Lambda/LINQ-字典转换<;字符串,字符串>;[]列出<;字符串[]>;,c#,linq,list,dictionary,lambda,C#,Linq,List,Dictionary,Lambda,长话短说,我试图实现的是将字典[]转换为列表。我不介意丢失字典的关键信息 我提出的解决方案是可行的,但我确信有一种更奇特的方法可以用LINQ和Lambda表达式实现相同的结果 我特别讨厌需要使用额外变量进行计数的部分,但据我所知,使用for循环在字典中循环是不可能的 提前谢谢 Dictionary<string, string>[] arrayOfStringDictionaries = new Dictionary<string, string>[2]

长话短说,我试图实现的是将
字典[]
转换为
列表
。我不介意丢失字典的关键信息

我提出的解决方案是可行的,但我确信有一种更奇特的方法可以用LINQ和Lambda表达式实现相同的结果

我特别讨厌需要使用额外变量进行计数的部分,但据我所知,使用
for
循环在
字典
中循环是不可能的

提前谢谢

 Dictionary<string, string>[] arrayOfStringDictionaries = new Dictionary<string, string>[2]
        {
            new Dictionary<string, string>(),
            new Dictionary<string, string>()
        };

        arrayOfStringDictionaries[0].Add("1", "Test1");
        arrayOfStringDictionaries[0].Add("2", "Test2");
        arrayOfStringDictionaries[0].Add("3", "Test3");

        arrayOfStringDictionaries[1].Add("1", "Test4");
        arrayOfStringDictionaries[1].Add("2", "Test5");
        arrayOfStringDictionaries[1].Add("3", "Test6");

        List<string[]> listofStringArrays = new List<string[]>();

        foreach (Dictionary<string, string> singledic in arrayOfStringDictionaries)
        {
            int count = 0;
            string[] stringArray = new string[singledic.Keys.Count];
            foreach (var key in singledic.Keys)
            {
                stringArray[count] = singledic[key];
                count++;
            }

            listofStringArrays.Add(stringArray);
        }
Dictionary[]arrayofstringdictionary=新字典[2]
{
新字典(),
新字典()
};
ArrayOfstringDictionary[0]。添加(“1”,“Test1”);
ArrayOfstringDictionary[0]。添加(“2”,“Test2”);
ArrayOfstringDictionary[0]。添加(“3”,“Test3”);
arrayOfStringDictionaries[1]。添加(“1”,“Test4”);
arrayofstringdictionary[1]。添加(“2”,“Test5”);
arrayofstringdictionary[1]。添加(“3”,“Test6”);
List listofStringArrays=新列表();
foreach(ArrayOfstringDictionary中的字典单体)
{
整数计数=0;
string[]stringArray=新字符串[singledic.Keys.Count];
foreach(singledic.Keys中的变量键)
{
stringArray[count]=单DIC[key];
计数++;
}
添加(stringArray);
}

那么您想要的只是值

arrayOfStringDictionaries.Select(dict => dict.Values.ToArray()).ToList();
这基本上意味着:

  • 对于数组中的每个字典,获取其所有值,并将它们组成一个数组

  • 获取所有这些数组,并将它们放入列表中