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

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

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

Re[5]: List型の配列の値の変更は可能でしょうか?


(過去ログ 58 を表示中)

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

■33084 / inTopicNo.1)  List型の配列の値の変更は可能でしょうか?
  
□投稿者/ tamaboyo (54回)-(2009/02/20(Fri) 11:47:05)

分類:[C#] 

tamaboyoです。

総数の分からないデータを読み込み中です。
読み込んだデータは構造体にまとめて、その構造体をList<>型にAddで追加しているのですが、
追加した構造体の値を変更することはできないのでしょうか?
変更したい場合は、List<>型は使えないのでしょうか?

環境はVS2005です。
宜しくお願いします。

引用返信 編集キー/
■33085 / inTopicNo.2)  Re[1]: List型の配列の値の変更は可能でしょうか?
□投稿者/ よねKEN (273回)-(2009/02/20(Fri) 11:51:51)
> 総数の分からないデータを読み込み中です。
> 読み込んだデータは構造体にまとめて、その構造体をList<>型にAddで追加しているのですが、
> 追加した構造体の値を変更することはできないのでしょうか?

List<あなたの構造体> list;

//listをnewして、あたなの構造体をがんがん追加
list[i] = 新しいあなたの構造体 // i番目を変更する場合

という感じで変更できます。
構造体の中のある属性だけを変更することはできません。
そのようにしたい場合は構造体ではなくクラスでどうぞ。

引用返信 編集キー/
■33086 / inTopicNo.3)  Re[2]: List型の配列の値の変更は可能でしょうか?
□投稿者/ tamaboyo (55回)-(2009/02/20(Fri) 12:57:30)
よねKEN さん、ありがとうございます。

>>追加した構造体の値を変更することはできないのでしょうか?
>
> List<あなたの構造体> list;
>
> //listをnewして、あたなの構造体をがんがん追加
> list[i] = 新しいあなたの構造体 // i番目を変更する場合
>
> という感じで変更できます。
> 構造体の中のある属性だけを変更することはできません。

構造体をまるっと変更はOKで、構造体のメンバの値のみ変更は、無理ってことですね。


> そのようにしたい場合は構造体ではなくクラスでどうぞ。

クラスをList<>でAddするのであれば、変更はできるということでしょうか?
引用返信 編集キー/
■33088 / inTopicNo.4)  Re[3]: List型の配列の値の変更は可能でしょうか?
□投稿者/ επιστημη (1756回)-(2009/02/20(Fri) 13:07:13)
επιστημη さんの Web サイト
>>そのようにしたい場合は構造体ではなくクラスでどうぞ。
> クラスをList<>でAddするのであれば、変更はできるということでしょうか?

かどうかやってみればいいぢゃん。訊くまでもない。

引用返信 編集キー/
■33094 / inTopicNo.5)  Re[4]: List型の配列の値の変更は可能でしょうか?
□投稿者/ tamaboyo (56回)-(2009/02/20(Fri) 14:14:28)
boyotamaです。

初期化の問題が出たので、class型追加していく方向に切り替えました。
クラスだと値の変更ができるようなのですが、
今のソースだと、同じクラスが追加されてしまうので、
1箇所かえたらAddした分だけ全てが変わってしまいました。
1箇所だけの変更がかかるようにそこのあたりを研究してみます。

ありがとうございました。
解決済み
引用返信 編集キー/
■33096 / inTopicNo.6)  Re[5]: List型の配列の値の変更は可能でしょうか?
□投稿者/ 出水 (117回)-(2009/02/20(Fri) 14:28:09)
そういえば、C#のstructとCollectionsは相性が悪いというBlogを書いた記憶があります
http://blogs.wankuma.com/izmktr/archive/2008/10/04/158142.aspx

クラスに変えると、list.add(new class) みたいに
addする要素ごとにnewしないといけないんじゃないかとエスパーレス
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -