c#中如何给一个数组添加一个新的元素
比如已经定义了数组:int[]a={1,2,4}现在想给他添加一个数字3,请问应该怎么加,并且a[2]==3,a[3]==4...
比如已经定义了数组:
int[] a={1,2,4}
现在想给他添加一个数字3,请问应该怎么加,并且a[2]==3,a[3]==4 展开
int[] a={1,2,4}
现在想给他添加一个数字3,请问应该怎么加,并且a[2]==3,a[3]==4 展开
7个回答
展开全部
将数组转换成List<T>后,利用List<T>.Insert实现插入新元素。方法如下:
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] x = { 1, 2, 3, 4 };
Console.WriteLine("插入前");
PrintArray(x);
try
{
x = InsertNumber(x, 10, 4);
Console.WriteLine("在 Index=4 处插入10后");
PrintArray(x);
x = InsertNumber(x, 100, 0);
Console.WriteLine("在 Index=0 处插入100后");
PrintArray(x);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
/// <summary>
/// 将value 插入到指定数组的指定的位置
/// </summary>
/// <param name="a">指定数组</param>
/// <param name="value">待插入的元素</param>
/// <param name="index">插入的位置</param>
/// <returns>插入后的数组</returns>
static int[] InsertNumber(int[] a, int value, int index)
{
try
{
//转换成List<int>集合
List<int> list = new List<int>(a);
//插入
list.Insert(index, value);
//从List<int>集合,再转换成数组
return list.ToArray();
}
catch (Exception e) // 捕获由插入位置非法而导致的异常
{
throw e;
}
}
/// <summary>
/// 打印数组
/// </summary>
static void PrintArray(int[] a)
{
foreach (int x in a)
{
Console.Write("{0} ", x);
}
Console.WriteLine();
}
}
}
展开全部
数组确实不能更改长度。不过你可以用Array.CopyTo方法来将其Copy到一个新数组中。
int[] newArray = new int[4];
oldArray.CopyTo( newArray , 0 );
但是你别老是调整,这是有性能问题的。如楼上几位所说的。你用ArrayList或者范型类List<int>就可以解决长度不定的情况。
int[] newArray = new int[4];
oldArray.CopyTo( newArray , 0 );
但是你别老是调整,这是有性能问题的。如楼上几位所说的。你用ArrayList或者范型类List<int>就可以解决长度不定的情况。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先遍历a数组取出值,然后根据值重新构造一个数组,包括你要添加的那个3,然后把这个新数组重新赋值给数组a!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个有难度,你之前定义的数组长度为3,a[3]是不可能有的,除非你重新定义一个数组,建议你用泛型
List<int> a = new List<int>();
……
a.Add(4);
List<int> a = new List<int>();
……
a.Add(4);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组是没法改变长度的,如果你需要使用动态数组请使用ArrayList类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询