我的输入是带有整数键和整数值的HashTable。我想将所有整数值转换为字符串值。因此输出将是整数键和字符串值的HashTable。
同样适用于ArrayLists。我有一个包含所有整数的ArrayList,我希望输出是所有字符串的ArrayList。
我的方法是循环并转换Hashtable和ArrayList中的每个条目,但我觉得有一种更简单的方法来做这个没有循环。我正在考虑使用LINQ的方法吗?
更新:
如果由我决定,我会完全避免使用HashTables和ArrayLists大声笑,但这是另一个故事。我需要将每个值转换为字符串的原因是因为我有一个包含Hashtable属性和Arraylist属性的复杂对象(Car)。 Hashtable / Arraylist值是其他复杂对象。 我正在将“Car”对象从客户端应用程序发送到WebAPI,因此“Car”会转换为JSON。令人讨厌的是当我尝试从WebAPI反序列化“Car”时。除了Hashtable / Arraylist值之外,所有内容都被反序列化。这些值仍然是JToken格式,我必须通过循环将它们逐个转换为字符串。
答案 0 :(得分:2)
如果您可以从Hashtable
更改为Dictionary
,从ArrayList
更改为List
,您可以使用LINQ(无论如何您都应该这样做)正在装箱哈希表和数组列表中的每个值):
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();