首页 > 解决方案 > 如何将数据从一个数组复制到另一个数组而不覆盖

问题描述

如何在 MVC C# 中将数据从数组复制到另一个数组而不覆盖它。

string[] total = new {"Apple", "Banana", "Cat"};
string[] arrayA= new {"Donkey", "Ear", "Frog"};
total= new List<string>().Concat(arrayA).ToArray();

这段代码基本上只是从中复制数据arrayA并覆盖它。那么无论如何要添加或复制数据arrayA并将其添加到我的值变成并且里面的值被覆盖total 之后。string[] total = new List<string>().Concat(arrayA).ToArray();totalarrayAtotal

标签: c#asp.net-mvcmodel-view-controller

解决方案


  1. 数组复制到

在复制数据方面,您可以使用上面的CopyTo解决方案执行此操作:

var source = new string[] { "1", "2", "3" };
var target = new string[3];

try
{
  source.CopyTo(target, 0);
}
catch (InvalidCastException)
{
  foreach (var element in target)
  {
    Console.WriteLine(element);
  }
}
  1. 将数组转换为列表

如果您想附加一个数组,您不能以正确的方式执行此操作(不设置目标数组的最大数量/长度并浪费内存)。List 在这里是更好的选择(将数组转换为列表可能是您寻找)。

List<int> lst = ints.OfType<string>().ToList();
  1. 阵列克隆

另一种选择是克隆整个数组,这意味着对数组项执行浅拷贝。

var source = new[] { "aa", "bb", "cc" };
var target = (string[])source.Clone();

推荐阅读