所以我有一个对象是Web请求的回复的一部分,该请求有两个属性。两者都是字符串数组。第一个称为COLUMNNAMES,第二个称为VALUES。例如,COLUMNNAMES将包含以下内容:
“ID”,“NAME”,“DATEADDED”,“DATECHANGED”
和VALUES将包含以下内容:
“1”,“APPLES”,“09/21/2013”,“09/21/2013”
“2”,“ORANGES”,“09/21/2013”,“09/21/2013”
“3”,“STRAWBERRIES”,“2013年9月21日”,“2013年9月21日”
我希望能够以某种方式将这些处理成一种我可以这样调用的数据结构:
Dim rows = GetReply()
For Each r in rows
Dim value = r("ID") 'ID is a column name
Next
我可以实现一种类型来创建它还是已经存在?谢谢!
答案 0 :(得分:1)
这里最好的答案是数据表。
答案 1 :(得分:0)
您可以使用LINQ将其转换为Dictionary
s:
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"];
}