如何将选定列添加到词典中?

时间:2014-12-22 01:09:14

标签: c# linq

var topLevel= resultRows.GroupBy(g => g["CustomerAccountType"]);

我想仅选择Actual1Actual2Actual3等列。列的名称不是预先知道的 - 它们是动态组合的。

我没有使用强类型对象,因为resultsRows是来自SQL多维数据集的构造字典。

我想将ActualN ... to..ActualN动态添加到集合中作为字典。

1 个答案:

答案 0 :(得分:1)

您可以使用Select来预测Actual1, Actual2, Actual3

var topLevel= resultRows
    .Select(d => new Dictionary<string,object> {
        {"Actual1", d["Actual1"]}
    ,   {"Actual2", d["Actual2"]}
    ,   {"Actual3", d["Actual3"]}
    });

这将从您的字典中删除Actual1, Actual2, Actual3以外的所有列。

  

我希望动态添加Actual1 ActualN,而不知道有多少

你也可以这样做:

// Construct this list dynamically
var selection = new List<string> {
    "Actual1", "Actual2", ..., "ActualN"
};
var topLevel= resultRows.Select(d => selection.ToDictionary(s => s, s => d[s]));