2016-12-27 151 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(); 
相关问题