3

1つのウィンドウにアプリケーションレベルの変数があります

  object temp1 = App.Current.Properties["listofstring"];

   var temp2 = (List<string>)temp1;

iamが変わるとき

 temp2[0]="abc";

また、 「listofstring」でそれを変更します

だから私はコピーを作りました

List<string> temp3 = temp2;

しかし、私がそうするなら

 temp3[0] ="abc"; 

他のウィンドウでアクセスすると、 「listofstring」でも変化しますか?

宣言された内容を乱さないように、ローカルコピーのみを使用するにはどうすればよいですか?

4

1 に答える 1

5

リストのコピーを作成するのではなく、参照をコピーします。できるよ:

List<string> temp3 = new List<string>(temp2.ToArray());
//or
List<string> temp3 = new List<string>(temp2);

または

List<string> temp3 = temp2.Select(r=>r).ToList();
//or 
List<string> temp3 = temp2.ToList();
于 2013-03-06T12:56:18.087 に答える