Есть ли способ поместить два массива в один массив, чтобы я мог использовать новый индекс массива? в С#
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = { 6, 7, 8, 9, 0 };
int[[]] arr3 = {arr1,arr2};
3 ответа
Вы можете применить SelectMany()
к arr3, чтобы преобразовать массив [[]]
массива в один плоский массив.
var flattenArr = arr3.SelectMany(x => x).ToArray();
Или вы можете использовать List<T>.AddRange()
для объединения двух списков в результирующий.
Поскольку у вас есть входной массив, вам нужно сначала преобразовать arr1
и arr2
в списки.
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = { 6, 7, 8, 9, 0 };
var list1 = arr1.ToList();
var list2 = arr2.ToList();
var result = list1.AddRange(list2).ToArray(); //Here type of result is int[]
Как предложил @Klaus Gütter в своем комментарии, вы можете использовать метод .Concat()
для объединения двух разные массивы
int[] arr3 = arr1.Concat(arr2).ToArray()
Как уже упоминалось, вы, вероятно, не хотите работать с массивом, так как есть так много лучших коллекций. Если, однако, вы настаиваете, простой способ сделать это — использовать Array.Copy:
// Declare array of the needed length
var arr4 = new int[arr1.Length+arr2.Length];
// Copy the first array into the new array
Array.Copy(arr1, arr4, arr1.Length);
// Copy the second array into the new array, at the end of the first
Array.Copy(arr2, 0, arr4, arr1.Length, arr2.Length);
Может быть, это то, что вам нужно
List<int[]> arr3 = new List<int[]>(){arr1,arr2};
Просто используйте список
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.
int[] arr3 = arr1.Concat(arr2).ToArray()
? Или иметь массив или массивы в качестве результата, напримерint[][] arr3 = {arr1,arr2};
?int[,] arr3 = new int[,] { arr1, arr2 };
?