2013-09-21 67 views
1

所以我有一個對象,它是來自Web請求的回覆的一部分,該請求具有兩個屬性。兩者都是字符串數組。第一個稱爲COLUMNNAMES,第二個稱爲VALUES。例如COLUMNNAMES會在它的下面:如何實現我自己的集合,可以像字典一樣使用

「ID」, 「姓名」, 「DATEADDED」, 「DATECHANGED」

和值將在它的下面:

「1」, 「蘋果」 的 「2013年9月21日」, 「2013年9月21日」

「2」, 「桔子」, 「2013年9月21日」, 「2013年9月21日」

「3」,「STRAWBERRIES」,「09/21/2013」​​,「09/21/2013」​​

我希望能夠做的就是以某種方式處理這些變成了一種數據結構,我可以打電話像這樣:

Dim rows = GetReply() 

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

有沒有辦法,我可以實現創建此或這是否已經存在一個類型?謝謝!

+0

DataTable類是爲此設計的。 –

+0

我每天都在使用數據表,甚至沒有考慮過它們。對我來說太早了!謝謝! –

+3

如果您回答了自己的問題,請自己做出答案並將其標記爲已接受或刪除該問題,以免它不會彈出到首頁作爲沒有被接受的答案的問題。 –

回答

1

最好在這裏的答案是一個數據表。

0

你可以使用LINQ到Munge時間進入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"]; 
} 
相關問題