c#でDictionary<string, object>をDictionary<string, string>に変換する方法
2023-09-19 07:59:48
質問
私はC#で以下のコードを持っています。
Dictionary<string, object> dObject = new Dictionary<string, object>();
を変換したい。
dObject
を
Dictionary<string, string>
. どうすればいいのでしょうか?
どのように解決するのですか?
ToDictionaryメソッドを使用します。
Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value.ToString());
ここでは、元の辞書のキーを再利用し、ToStringメソッドを用いて値を文字列に変換しています。
辞書にNULL値が含まれる可能性がある場合は、ToStringを実行する前にNULLチェックを追加する必要があります。
Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value == null ? "" : k.Value.ToString());
これがうまくいく理由は
Dictionary<string, object>
が実際には
IEnumerable<KeyValuePair<string,object>>
. 上記のコード例では、ToDictionaryメソッドを使用して列挙可能な項目を反復処理し、新しい辞書を構築しています。
編集してください。
.Net 2.0ではToDictionaryメソッドを使用できませんが、昔ながらのforeachを使用して同じことを実現することができます。
Dictionary<string, string> sd = new Dictionary<string, string>();
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
sd.Add(keyValuePair.Key, keyValuePair.Value.ToString());
}
編集2
.Net 2.0を使用していて、辞書にNULL値がある場合は、次のようにすると安全です。
Dictionary<string, string> sd = new Dictionary<string, string>();
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
sd.Add(keyValuePair.Key, keyValuePair.Value == null ? "" : keyValuePair.Value.ToString());
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】Nullableオブジェクトは値を持たなければならない?