想要在char数组的某个位置添加元素。尝试使用Concat,但显示错误,也许缺少参考。还试图找到类似的问题,但没有找到。
请参见以下代码,并在数组的末尾以及该数组的任何索引处添加元素。
char[] c = { 'a','b','c','d' };
//add elements.
// c.Concat//c.add//[c.Length] = 'e';
谢谢。
答案 0 :(得分:4)
数组大小是静态的,因此您不能向其中添加元素。但是,如果您确实要在其中插入元素,则可以resize数组,然后将元素从所需位置向右移动一个位置,然后设置新元素。例如,您可以具有以下功能:
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;
}
然后,例如:
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));
}
答案 1 :(得分:2)
您可以尝试以下方法:
var myList = new char [] {'a','b','d','e'} .ToList();
myList.Insert(2,'c');
//查看结果:“ a,b,c,d,e”
答案 2 :(得分:1)
数组具有此缺点,它具有固定的大小,并且要添加元素,您必须调整其大小,这不方便。
我建议您使用一些集合,例如List
来执行此类操作。
例如:
List<char> chars = new List<char>{ 'a','b','c','d' };
// add character at the end
chars.Add('e');
您可以阅读更多here。
答案 3 :(得分:0)
使用这样的东西:
var list = c.ToList();
list.Insert(int index, char item)