Конкатенация массивов в C # - PullRequest
4 голосов
/ 07 мая 2010
  1. Как правильно инициализировать массив с двумя (или более) другими массивами в C #?

    double[] d1 = new double[5];
    double[] d2 = new double[3];
    double[] dTotal = new double[8]; // I need this to be {d1 then d2}
    
  2. Еще один вопрос: как эффективно объединить массивы C #?

Ответы [ 4 ]

9 голосов
/ 07 мая 2010

Вы можете использовать CopyTo :

double[] d1 = new double[5];
double[] d2 = new double[3];
double[] dTotal = new double[d1.Length + d2.Length];

d1.CopyTo(dTotal, 0);
d2.CopyTo(dTotal, d1.Length);
5 голосов
/ 07 мая 2010
var dTotal = d1.Concat(d2).ToArray();

Возможно, вы могли бы сделать это «лучше», сначала создав dTotal, а затем просто скопировав оба ввода с помощью Array.Copy.

4 голосов
/ 07 мая 2010

Вам нужно позвонить Array.Copy, например:

double[] d1 = new double[5];
double[] d2 = new double[3];
double[] dTotal = new double[d1.length + d2.length];

Array.Copy(d1, 0, dTotal, 0, d1.Length);
Array.Copy(d2, 0, dTotal, d1.Length, d2.Length);
0 голосов
/ 20 сентября 2013
using System.Linq;

int[] array1 = { 1, 3, 5 };
int[] array2 = { 0, 2, 4 };

// Concat array1 and array2.
var result1 = array1.Concat(array2).ToArray();
...