本日はC#の小ネタ枠です。
C#でConcatを使ってリスト同士を結合する方法です。
Enumerable.Concat
Enumerable.Concatメソッドは2つのIEnumerable型を連結したIEnumerableを返します。
本メソッドを使ってListやDictionaryを1つのシーケンスに繋げることができます。
learn.microsoft.com
int[] dataList1 = new int[] { 0, 1, 2, 3, 4 }; int[] dataList2 = new int[] { 5, 6, 7, 8, 9 }; // Concatでリストを連結 IEnumerable<int> concatDataList = dataList1.Concat(dataList2);
サンプルスクリプト
Enumerable.Concatメソッドを使ってListやDictionaryを連結するサンプルスクリプトを作成しました。
・ConcatTest.cs
using System.Collections.Generic; using System.Linq; using UnityEngine; public class ConcatTest : MonoBehaviour { void Start() { List<int> dataList1 = new List<int> { 0, 1, 2, 3, 4 }; List<int> dataList2 = new List<int> { 5, 6, 7, 8, 9 }; // Concatでリストを連結 var concatDataList = dataList1.Concat(dataList2); // 連結したデータを表示 Debug.Log($"concatDataList: {string.Join(", ", concatDataList.Select(data => data.ToString()).ToArray())}"); Dictionary<int, string> dataDictionary1 = new Dictionary<int, string> { { 0, "Zero" }, { 1, "One" }, { 2, "Two" }, { 3, "Three" }, { 4, "Four" }, }; Dictionary<int, string> dataDictionary2 = new Dictionary<int, string> { { 5, "Five" }, { 6, "Six" }, { 7, "Seven" }, { 8, "Eight" }, { 9, "Nine" }, }; // ConcatでDictionaryを連結 var concatDataDictionary = dataDictionary1.Concat(dataDictionary2); // 連結したデータを表示 Debug.Log($"concatDataDictionary: {string.Join(", ", concatDataDictionary.Select(data => $"{{ {data.Key}, {data.Value} }}").ToArray())}"); } }
以下の通り、ListやDictionaryを連結したリストを作成できました。