如何将数组的部分复制到新数组。 C#

时间:2016-11-05 10:56:52

标签: c# arrays arraycopy

我正在尝试将数组的一部分复制到一个新数组并搜索一个解决方案,但是那些解决方案是分配编码或者不是我想要的。它可能是我在谷歌搜索错误,但很抱歉,如果这个答案很容易找到,我找不到。

我有阵列A

string[] A = {"A", "B", "C", "D", "E", "F"};

我尝试使用

将部分内容复制到数组B.

string[] B = new string[2]; Array.Copy(A, 0, B, 0, 2)

但这只是给出阵列A的固定部分,因此阵列B由" A"组成。和" B"。

还有一种方法可以给出数组B值0,1,4,5。所以它给了我" A" " B" " E"和" F"

也很抱歉英语不好它不是我的母语,我试图在谷歌搜索:

我的第一次搜索的结果让我得到了关于如何获得2D数组的页面,但这不是我需要的。 "如何将数组的2个部分复制到新数组"什么引导我到array.copy标签 之后我试着查看" array.copy manual"但这只会导致我无法使用array.copy来完成它所以有人知道如何在紧凑的代码中执行此操作吗?

一次。对不起,如果答案显而易见的话。

3 个答案:

答案 0 :(得分:3)

  

还有一种方法可以给出数组B值0,1,4,5。所以它给了我" A" " B" " E"和" F"

不,因为B是一个string的数组。但是,您可以从单独的索引数组开始,然后根据它们从A进行复制:

int[] indexes = new[] {0, 1, 4, 5};
string[] B = indexes.Select(i => A[i]).ToArray();

答案 1 :(得分:1)

一种方法可能是:

var indices = new[] { 0, 1, 4, 5 };
var copy = A.Where((s, i) => indices.Contains(i)).ToArray();

答案 2 :(得分:0)

嗯,我刚刚用我的代码喋喋不休,我觉得这很有效:

string[] A = {"A", "B", "C", "D", "E", "F"}; string[] B = new string[4]; Array.Copy(A, 0, B, 0, 2) Array.Copy(A, 4, B, 2, 2)

它给出了数组B值A B E和F