将值放在Char数组的特定索引中,然后将Char数组的特定元素复制到C#中的另一个Char数组

时间:2014-11-28 03:41:56

标签: c# arrays

我正在尝试编写C#代码来创建两个Char数组 名称为“ ptrArr ”,“ ptrArr2

并将*放在数组“ ptrArr ”中的每个索引(2 ^ i)-1 中 例如:指数0,1,3,7 ......

然后将“ ptrArr2 ”的元素复制到“ ptrArr 而不用复制元素到数组“ptrArr”的索引有'*'值

正如我在链接中的图片中所解释的

https://app.box.com/s/e6qwsnw7iwg86c90vohm

enter image description here

我需要你的帮助才能做到这一点

这是我的尝试

int i = 0, j = 0, n = 0;

while (n < ptrArr.Length)
{
    if (ptrArr[i] != '*')
    {
        ptrArr2[j] = ptrArr[i];
        i++;
        j++;
    }
    else
        i++;
}
string s = new string(ptrArr);
textBox5.Text = s;

1 个答案:

答案 0 :(得分:1)

这可以解决您的问题,并根据需要获得ptrArr2。请评论

 static void Main(string[] args)
        {
            char[] ptrArr = new[] { '0','1','0','1','0','1','0','1' };
            char[] ptrArr2=  new char[0];
            List<char> ptrArr2temp = new List<char>();

            for (int i = 0; i < ptrArr.Length; i++)
            {   
                ptrArr2temp.Add(ptrArr[i]);
            }

            for (int i = 0; i < ptrArr.Length; i++)
            {
                int internalIndex = ((int)(Math.Pow(2, i))) - 1;
                if (ptrArr2temp.Count > internalIndex)
                {
                    ptrArr2temp.Insert(internalIndex, '*');
                }
            }
            ptrArr2 = ptrArr2temp.ToArray();          
        }