如何实现我自己的集合,可以像字典一样使用



所以我有一个对象,它是来自Web请求的回复的一部分,该请求具有两个属性。两者都是字符串数组。第一个称为 COLUMNNAMES,第二个称为 VALUES。例如,列名中将包含以下内容:

"ID", "名称", "添加日期"

, "日期已更改"

和值将包含以下内容:

"1", "苹果", "09/21/2013"

, "09/21/2013"

"2", "橙子", "09/21/2013"

, "09/21/2013"

"3", "草莓", "09/21/2013"

, "09/21/2013"

我希望能够做的是以某种方式将这些处理成一种数据结构,我可以这样调用:

Dim rows = GetReply()
For Each r in rows
    Dim value = r("ID") 'ID is a column name
Next 

是否有一种类型可以实现来创建它,或者它已经存在?谢谢!

这里最好的答案是数据表。

您可以使用 LINQ 将其修改为Dictionary序列:

class Reply {
    string[] _columnNames = {"ID", "NAME"}; // the list of columns you received
    string[][] _rowValues = { // the lists of values you received
        new[]{"1", "APPLES"},
        new[]{"2", "ORANGE"}
    };
    public IEnumerable<Dictionary<string, string>> Rows {
        get {
            foreach (var row in _rowValues) {
                yield return _columnNames
                                .Zip(row, (key, value) => new {key, value})
                                .ToDictionary(kv=>kv.key, kv=>kv.value);
            }
        }
    }
}
// ...
foreach (row in new Reply().Rows) {
    var id = row["ID"];
    var name = row["NAME"];
}

最新更新