C# 在字符数组的某个位置添加元素?

C# 在字符数组的某个位置添加元素?,c#,arrays,C#,Arrays,要在字符数组的某个位置添加元素。尝试使用Concat,但显示错误,可能缺少某些参考。也试图找到类似的问题,但没有找到 请参阅以下代码,并在数组末尾以及该数组的任何索引处添加元素 char[] c = { 'a','b','c','d' }; //add elements. // c.Concat//c.add//[c.Length] = 'e'

要在字符数组的某个位置添加元素。尝试使用Concat,但显示错误,可能缺少某些参考。也试图找到类似的问题,但没有找到

请参阅以下代码,并在数组末尾以及该数组的任何索引处添加元素

                         char[] c = { 'a','b','c','d' };

                         //add elements.

                         // c.Concat//c.add//[c.Length] = 'e';                 
谢谢。

你可以试试这个:

var myList = new char[] { 'a','b','d','e' }.ToList();
myList.Insert(2, 'c');
// View the results: "a,b,c,d,e"

使用这样的东西:

var list = c.ToList();
list.Insert(int index, char item)

数组大小是静态的,因此不能向其中添加元素。但是,如果您真的非常想在其中插入一个元素,您可以打开数组,然后将元素从所需位置向右移动一个位置,然后设置新元素。例如,您可以使用以下功能:

public static void InsertInArray(ref char[] array, char element, int pos)
{
    // Check that index is inside the bounds
    if (pos < 0 || pos > array.Length)
    {
        throw new IndexOutOfRangeException();
    }

    // Resize the array
    Array.Resize(ref array, array.Length + 1);

    // Shift elements one place to the right, to make room to new element
    for (int i = array.Length - 1; i > pos; i--)
    {
        array[i] = array[i-1];
    }

    // Set new element
    array[pos] = element;
}

完整示例:

数组有一个缺点,它的大小是固定的,为了添加元素,必须调整它的大小,这是不合适的

我建议您使用一些集合,如
List
来执行此类操作

例如:

public static void Main()
{       
    var myChars = new char[] { 'b', 'c', 'e' };

    // Insert in position 0
    InsertInArray(ref myChars, 'a', 0);

    // Print array: a,b,c,e
    Console.WriteLine(string.Join(",", myChars));

    // Insert in position 3
    InsertInArray(ref myChars, 'd', 3);

    // Print array: a,b,c,d,e
    Console.WriteLine(string.Join(",", myChars));

    // Insert in position 5
    InsertInArray(ref myChars, 'f', 5);

    // Print array: a,b,c,d,e,f
    Console.WriteLine(string.Join(",", myChars));
}
List<char> chars = new List<char>{ 'a','b','c','d' };
// add character at the end
chars.Add('e');
List chars=新列表{'a','b','c','d'};
//在末尾添加字符
字符。添加('e');

您可以阅读更多内容。

这是针对Javascript的。“它在文档下。”吉列尔莫古蒂·雷兹:我以为这个问题有个c标签!!问题是关于
C#
,你的答案是JavaScript=]@Hooman我的意思是
Array.insert
是一个JavaScript函数,根据你所指的MS文档。@GuillermoGutiérrez:oops,这是我的错。我会更新我的答案。谢谢你指出这一点。
c=c.Take(2).Concat(新字符[]{'e'}).Concat(c.Skip(2)).ToArray()(假设您要在数组中第三个位置的索引2处插入)。它看起来有很多操作,所以如果使用“列表”方法会更好吗?是的。如果我上面的代码不起作用,请使用System.Linq添加
列表
,看看我的答案。非常感谢您对这个答案的广泛解释。您能确认使用“列表”方法是否会提高性能吗?一般来说,
List
更适合@bulliedMonster@mjwills您能提到如何将字符串转换为列表吗?要将数组转换为列表,请使用
ToList
@bulliedMonster。也可以考虑使用<代码> StringBuilder <代码>。