- 題名: 構造体のListについて
- 日時: 2011/05/09 21:14:34
- ID: 28550
- この記事の返信元: - (なし)
 
- この記事への返信: - [28551] Re[1]: 構造体のListについて2011/05/09 22:18:52
 
- ツリーを表示
2011/05/09(Mon) 22:19:09 編集(投稿者)
■No28550に返信(ぽんさんの記事)
> このような場合のSetupをforループで変更は可能でしょうか?
正直なところ、この質問文での意味がわかりません。
次のサンプルで知りたいことがわかりますか?
for (int i = 0; i < Elec.Count; ++i)
{
  // Elec[i].Name = "aaa"; // これは中身が書き換わらない+コンパイルエラーになります。
  SampleData data = new SampleData();
  data.Name = i.ToString();
  data.Setup = new List<string>();
  data.Setup.Add("test");
  Elec[i] = data; // 構造体の List の場合は代入しなおすことが必要
  Console.WriteLine(Elec[i].Name);
}
ポイント:
値型(構造体を含む)の List<T> の場合、[i] で取得した際は一時的なコピーが返されると思うべし。
コピーに対して何をしても、List<T> の中身に変化はない。
分類:[.NET]
お世話になっております。
Listを使用するのは初めてで見当違いの質問かも知れませんが
お願いします。
データをまとめるため構造体を使用し、このデータが複数あるためListを
使用しようと思ってますが構造体のなかにもListを使用したいと思ってます。
コードは以下です。
// 構造体の定義
struct SampleData
{
public string Name;
public List<string> Setup;
}
// 構造体のリストの定義
private List<SampleData> Elec = new List<SampleData>();
このような場合のSetupをforループで変更は可能でしょうか?
宜しくお願いします。