2016-12-27 9 views
-1

私の入力は整数キーと整数値を持つハッシュテーブルです。すべての整数値を文字列値に変換したい。したがって、出力は整数キーと文字列値のハッシュテーブルになります。すべてのC#Hashtable値とArrayList値を文字列に変換します

ArrayListの場合と同様です。私はすべての整数を持つArrayListを持っており、出力をすべての文字列のArrayListにします。

私のアプローチは、ループして、HashtableとArrayListの各エントリを変換することでしたが、ループなしでこれを行う簡単な方法があるように感じます。私はLINQを使用する行に沿って何かを考えていましたか?

UPDATE:それは私までだったら

、私は笑完全ハッシュテーブルとのArrayListを避けるだろうが、それはまた別の話です。各値を文字列に変換する必要がある理由は、HashtableプロパティとArraylistプロパティを含む複雑なオブジェクト(Car)があるためです。 Hashtable/Arraylist値は他の複雑なオブジェクトです。 クライアントアプリケーションからWebAPIに "Car"オブジェクトを送信して、 "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

あなたはDictionaryへとArrayListから(あなたのハッシュテーブルと配列リスト内のすべての値をボクシングされているので、あなたはとにかくやるべき)ListHashtableから変更することがOKされている場合は、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(); 
関連する問題