将所有C#Hashtable值和ArrayList值转换为字符串

时间:2016-12-27 04:23:34

标签: c# linq arraylist hashtable

我的输入是带有整数键和整数值的HashTable。我想将所有整数值转换为字符串值。因此输出将是整数键和字符串值的HashTable。

同样适用于ArrayLists。我有一个包含所有整数的ArrayList,我希望输出是所有字符串的ArrayList。

我的方法是循环并转换Hashtable和ArrayList中的每个条目,但我觉得有一种更简单的方法来做这个没有循环。我正在考虑使用LINQ的方法吗?

更新:

如果由我决定,我会完全避免使用HashTables和ArrayLists大声笑,但这是另一个故事。我需要将每个值转换为字符串的原因是因为我有一个包含Hashtable属性和Arraylist属性的复杂对象(Car)。 Hashtable / Arraylist值是其他复杂对象。 我正在将“Car”对象从客户端应用程序发送到WebAPI,因此“Car”会转换为JSON。令人讨厌的是当我尝试从WebAPI反序列化“Car”时。除了Hashtable / Arraylist值之外,所有内容都被反序列化。这些值仍然是JToken格式,我必须通过循环将它们逐个转换为字符串。

1 个答案:

答案 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();