c# - 将 KeyValuePair<int,string> 转换为 int[] 数组和 string[] 数组

标签 c# .net multidimensional-array jagged-arrays

KeyValuePair<int, string>[][] partitioned = SplitVals(tsRequests.ToArray());

不要太担心我使用的方法;可以说我得到了一个锯齿状的 KeyValuePairs 数组,它们平均分成不同的数组。

foreach (KeyValuePair<int, string>[] pair in partitioned)
{
    foreach (KeyValuePair<int, string> k in pair)
    {
    }
}

我需要知道如何有效地获取 int 数组中的 int,以及从键值对数组中获取单独字符串数组中的字符串。这样两个索引在单独的数组中相互匹配。

比如我把它拆分成一个int[]数组和一个string[]数组后,

intarray[3] must match stringarray[3] just like it did in the keyvaluepair.

假设我有一个带有 KVP 的锯齿状数组,例如:

    [1][]<1,"dog">, <2,"cat">
    [2][]<3,"mouse">,<4,"horse">,<5,"goat">
    [3][]<6,"cow">

我需要在每次迭代中把它变成

    1. 1,2 / "dog","cat"
    2. 3,4,5 / "mouse", "horse", "goat"
    3. 6 / "cow"

最佳答案

int[] keys = partitioned.Select(pairs => pairs.Select(pair => pair.Key).ToArray())
    .ToArray();
string[] values = partitioned.Select(pairs => pairs.Select(pair => pair.Value).ToArray())
    .ToArray();

关于c# - 将 KeyValuePair<int,string> 转换为 int[] 数组和 string[] 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406738/

相关文章:

java - 我正在尝试从右下角到左上角以垂直模式搜索我的java多维数组?我的代码有什么问题吗?

c# - 无法在调试中创建 DataCacheFactory 实例

c# - 在 .NET 中高效地重定向标准输出

c# - 单线程应用程序显示类似竞争条件的行为

c# - 将RichTextBox中的文本转换为语音

.net - 获取显卡功能等硬件信息

c++ - 从 native 进程加载 .NET PE 的内存

C++ 标记 3D 对象数组中的连续部分

c++ - 如何将一个 vector 传递给另一个 vector 推回? (无需创建额外的变量来传递)

c# - 标准化 System.Decimal - 去除尾随零