C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB.NET Dictionaryの値変更


(過去ログ 97 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■57984 / inTopicNo.1)  VB.NET Dictionaryの値変更
  
□投稿者/ *aka*aka* (18回)-(2011/03/23(Wed) 11:04:21)

分類:[VB.NET/VB2005 以降] 

【環境:Win7 Pro、Visual Studio 2010 Express VB.NET】

一度DictionaryにKeyとValueを設定後に、
再度登録済みのKeyを検索し、Valueを変更することは可能でしょうか。

If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
dic_Table.Values = "New Value"
End If

もちろんValuesはReadOnlyですとエラーになりました。

引用返信 編集キー/
■57988 / inTopicNo.2)  Re[1]: VB.NET Dictionaryの値変更
□投稿者/ shu (535回)-(2011/03/23(Wed) 12:14:51)
No57984 (*aka*aka* さん) に返信

値を設定するのは
dic_Table.add(key, Value) //--- 初回のみ
dic_Table(key) = Value //--- 初回は多分addの方が効率がよいのかも
のどちらかで出来ます。
引用返信 編集キー/
■57995 / inTopicNo.3)  Re[1]: VB.NET Dictionaryの値変更
□投稿者/ くり太郎 (9回)-(2011/03/23(Wed) 14:07:47)
くり太郎 さんの Web サイト
No57984 (*aka*aka* さん) に返信
> 【環境:Win7 Pro、Visual Studio 2010 Express VB.NET】
>
> 一度DictionaryにKeyとValueを設定後に、
> 再度登録済みのKeyを検索し、Valueを変更することは可能でしょうか。
>
> If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
> dic_Table.Values = "New Value"
> End If

If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
  dic_Table(CLb_JokenSelect.Text) = "New Value"
End If

で良いはずです。

引用返信 編集キー/
■57996 / inTopicNo.4)  Re[2]: VB.NET Dictionaryの値変更
□投稿者/ shu (536回)-(2011/03/23(Wed) 14:17:46)
No57995 (くり太郎 さん) に返信
> ■No57984 (*aka*aka* さん) に返信
>>【環境:Win7 Pro、Visual Studio 2010 Express VB.NET】
>>
>>一度DictionaryにKeyとValueを設定後に、
>>再度登録済みのKeyを検索し、Valueを変更することは可能でしょうか。
>>
>>If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
>> dic_Table.Values = "New Value"
>>End If
>
> If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
>   dic_Table(CLb_JokenSelect.Text) = "New Value"
> End If
>
> で良いはずです。
>

キーが登録されていなければ値を設定しないとか他の処理をするという
意図がなければContainsKeyでの判断は不要です。

引用返信 編集キー/
■58008 / inTopicNo.5)  Re[3]: VB.NET Dictionaryの値変更
□投稿者/ *aka*aka* (19回)-(2011/03/23(Wed) 17:40:32)
No57996 (shu さん) に返信
> ■No57995 (くり太郎 さん) に返信
>>■No57984 (*aka*aka* さん) に返信

解決しました。

ありがとうございました。

解決済み
引用返信 編集キー/
■58096 / inTopicNo.6)  Re[3]: VB.NET Dictionaryの値変更
□投稿者/ くり太郎 (10回)-(2011/03/25(Fri) 14:28:45)
くり太郎 さんの Web サイト
No57996 (shu さん) に返信
> ■No57995 (くり太郎 さん) に返信
>>■No57984 (*aka*aka* さん) に返信
> >>【環境:Win7 Pro、Visual Studio 2010 Express VB.NET】
> >>
> >>一度DictionaryにKeyとValueを設定後に、
> >>再度登録済みのKeyを検索し、Valueを変更することは可能でしょうか。
> >>
> >>If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
> >> dic_Table.Values = "New Value"
> >>End If
>>
>>If dic_Table.ContainsKey(CLb_JokenSelect.Text) Then
>>  dic_Table(CLb_JokenSelect.Text) = "New Value"
>>End If
>>
>>で良いはずです。
>>
>
> キーが登録されていなければ値を設定しないとか他の処理をするという
> 意図がなければContainsKeyでの判断は不要です。
>

単に「インデックスの値があれば更新、なければ追加」ということなら、ContainsKey による判断は不要ですね。
逆に「あるときだけ更新」なら、上記のコードのようになると言うことですね。

どちらの用途かわからなかったので、質問元のコードに近い形で提示させていただきました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -