我有一本字典,里面有一个评估的答案,如下所示:

{
    {"question1", "7"},
    {"question1_comment", "pretty difficult"},
    {"question2", "9"},
    {"question2_comment", ""},
    {"question3", "5"},
    {"question3_comment", "Never on time"},
}

但我需要将score项和comment项组合成一个对象,如下所示
{
    {"question1", "7", "pretty difficult"},
    {"question2", "9", ""},
    {"question3", "5", "Never on time"},
}

我想我需要使用聚合方法来实现这个目标,但是我不知道从哪里开始。

最佳答案

你可以这样做:

var res = data
    .Keys
    .Where(s => !s.EndsWith("_comment"))
    .Select(s => new[] {s, data[s], data[s+"_comment"]})
    .ToList();

ides首先过滤掉所有不以"_comment"结尾的键,然后使用这些键在结果数组中查找这两部分内容。
Demo.

10-05 23:01