2016-12-27 62 views
-1

我的輸入是一個包含整數鍵和整數值的HashTable。我想將所有整數值轉換爲字符串值。所以輸出將是一個整數鍵和字符串值的HashTable。將所有C#哈希表值和ArrayList值轉換爲字符串

對於ArrayLists也是如此。我有一個ArrayList與所有整數,我希望輸出是所有字符串的ArrayList。

我的方法是循環並轉換Hashtable和ArrayList中的每個條目,但我覺得有沒有循環做到這一點更簡單的方法。我正在考慮使用LINQ?

UPDATE:

如果是對我,我會避免哈希表和完全的ArrayList笑但這是另一個故事。我需要將每個值轉換爲字符串的原因是因爲我有一個包含Hashtable屬性和Arraylist屬性的複雜對象(Car)。 Hashtable/Arraylist值是其他複雜的對象。 我將「Car」對象從客戶端應用程序發送到WebAPI,因此「Car」被轉換爲JSON。令人討厭的是當我嘗試從WebAPI反序列化「Car」時。除了Hashtable/Arraylist值之外,一切都被反序列化。值仍然是JToken格式,我必須通過循環將它們逐個轉換爲字符串。

+1

您是否有任何證據表明您的嘗試,爲什麼不根據您的要求提供數據類型而不是此轉換?我的意思是整數鍵和字符串值的HashTable? –

+0

http://stackoverflow.com/questions/37298121/copying-list-to-new-list-still-change-the-old-lists-value –

+0

沒有循環沒有簡單的方法。無論如何你都需要循環所有的值。即使使用LINQ。您需要創建'Hashtable '和'ArrayList ' – Fabio

回答

2

您可以使用LINQ如果你確定從Hashtable更改爲Dictionary並從ArrayListList(你應該做的呢,因爲你是拳擊在您的哈希表和數組列表中的每個值):

Dictionary<int, string> dictionary = hashtable.Cast<DictionaryEntry>().ToDictionary(entry => (int)entry.Key, entry => entry.Value.ToString()); 

List<string> list = arrayList.Cast<int>().Select(value => value.ToString()).ToList();