2014-06-26 39 views
0

我有一個Web服務,它返回一個包含多個子對象的對象。父對象以及子對象具有大量的鍵值對(keyvaluepair [])。此時我正在使用linq來識別keyvaluepair,然後獲取該值。將大量鍵值對轉換爲C#對象的最佳方法

對於較小的集合,這個過程似乎沒問題。但是我從服務接收到的對象具有超過300個鍵值對,並且我正在尋找將鍵值對映射到對象的最佳方法。

有沒有什麼好的方法可以做到這一點或任何現有的圖書館,可以幫助我做到這一點?

+4

300幾乎是一個巨大的集合...... –

+0

對於一個時間過程300可能不是巨大的。在我的情況下,我有兩種這種類型的Web服務,我必須使用它們並映射來自鍵值對的對象。這些網絡服務將不斷有多個呼叫,我正在尋找一種有效的方法來完成這項工作。 –

回答

3

這聽起來像你應該建立一個字典:

var dictionary = pairs.ToDictionary(pair => pair.Key, pair => pair.Value); 

然後你可以看一下通過按鍵中的任何條目非常有效。請注意,此要求所有密鑰都不同。如果一個密鑰可能有多個值,請改爲使用ToLookup

+0

感謝您建議使用ToLookup。在我的情況下,我確實有重複的鍵,所以我猜ToLookup是要走的路。 –

1

使用Jon的初始代碼和基於關閉This Question - 如果你已經有了類定義,你可以欺騙使用串行

var dictionary = pairs.ToDictionary(pair => pair.Key, pair => pair.Value); 
var serializer = new JavaScriptSerializer(); 
var yourObject= serializer.Deserialize<yourObject>(serializer.Serialize(dictionary)); 
相關問題