C# リストを値渡しでコピーする
C#で、配列やリストに連続した値を作成するサンプルコードを記述してます。
環境
- OS windows10 pro 64bit
- .net core 3.1
- Microsoft Visual Studio Community 2019 Version 16.7.1
値渡しでコピー
値渡しでコピーするには、Listのコンストラクタを使用します。
以下は、値渡しでリストをコピーするだけのコードとなります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
internal class sample
{
public int Id { get; set; }
public string Name { get; set; }
public int Score { get; set; }
}
class Program
{
static void Main(string[] args)
{
try
{
var list1 = new List<string>();
list1.Add("1");
list1.Add("2");
list1.Add("3");
// 値渡しで渡す
var list2 = new List<string>(list1);
list2.Add("5");
// 元の値のまま
Console.WriteLine(string.Join(",", list1)); // 1,2,3
// list2だけ変更される
Console.WriteLine(string.Join(",", list2)); // 1,2,3,5
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
参照渡しの場合は、以下となります。
using System;
using System.Collections.Generic;
using System.Linq;
namespace testapp
{
internal class sample
{
public int Id { get; set; }
public string Name { get; set; }
public int Score { get; set; }
}
class Program
{
static void Main(string[] args)
{
try
{
var list1 = new List<string>();
list1.Add("1");
list1.Add("2");
list1.Add("3");
// 参照渡しで渡す
var list2 = list1;
list2.Add("5");
// 元の値のまま
Console.WriteLine(string.Join(",", list1)); // 1,2,3,5
// list2だけ変更される
Console.WriteLine(string.Join(",", list2)); // 1,2,3,5
}
catch (Exception e)
{
System.Console.WriteLine(e.ToString());
}
}
}
}
実行結果
-
前の記事
SourceTree ローカルブランチを切り替える 2021.06.30
-
次の記事
javascript dirname属性の値を取得して変更する 2021.07.01
コメントを書く