c# - Lambda / LINQ -从Dictionary[]到List
本文关键字:string List strin LINQ Dictionary Lambda | 更新日期: 2023-09-27 18:11:04
长话短说,我想要实现的是将Dictionary<string, string>[]
转换为List<string[]>
。我不介意丢失字典的关键信息。
我提出的解决方案正在工作,但我很确定有一个更花哨的方法来完成与LINQ和Lambda表达式相同的结果。
我特别讨厌的部分,我需要使用一个额外的变量计数,但据我所知,这是不可能通过一个Dictionary<string, string>
循环与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);
}
所以你想要的只是值?
arrayOfStringDictionaries.Select(dict => dict.Values.ToArray()).ToList();
这基本上是什么意思:
对于数组中的每个字典,获取其所有值,并将它们组成一个数组
获取所有这些数组,并将它们放入列表
本文关键字:string List strin LINQ Dictionary Lambda | 更新日期: 2023-09-27 18:11:04
长话短说,我想要实现的是将Dictionary<string, string>[]
转换为List<string[]>
。我不介意丢失字典的关键信息。
我提出的解决方案正在工作,但我很确定有一个更花哨的方法来完成与LINQ和Lambda表达式相同的结果。
我特别讨厌的部分,我需要使用一个额外的变量计数,但据我所知,这是不可能通过一个Dictionary<string, string>
循环与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);
}
所以你想要的只是值?
arrayOfStringDictionaries.Select(dict => dict.Values.ToArray()).ToList();
这基本上是什么意思:
对于数组中的每个字典,获取其所有值,并将它们组成一个数组
获取所有这些数组,并将它们放入列表