C# 从字符串中每隔一秒提取一个字符,并且没有正确的输出

C# 从字符串中每隔一秒提取一个字符,并且没有正确的输出,c#,.net,C#,.net,我正在做一个编码挑战,我很难理解我的代码哪里出错了 这就是挑战: 构建加密字符串:从 字符串,然后是不是每2个字符的其他字符,以及concat 把它们当作新的字符串。这样做n次 示例输出: 我的初始迭代会产生正确的输出,但是使用相同方法的第二次迭代不会。 我错过什么了吗 编辑:忘记添加我的输出: 使用系统; 命名空间测试项目 { 类主类 { 公共静态void Main(字符串[]args) { var text=“这是一个测试!”; var n=2; var everySecondLetter=

我正在做一个编码挑战,我很难理解我的代码哪里出错了

这就是挑战:

构建加密字符串:从 字符串,然后是不是每2个字符的其他字符,以及concat 把它们当作新的字符串。这样做n次

示例输出:

我的初始迭代会产生正确的输出,但是使用相同方法的第二次迭代不会。 我错过什么了吗

编辑:忘记添加我的输出:

使用系统;
命名空间测试项目
{
类主类
{
公共静态void Main(字符串[]args)
{
var text=“这是一个测试!”;
var n=2;
var everySecondLetter=“”;
var-otherlets=“”;
//var newString=“”;
//var duplicateString=“”;
var迭代=1;
做
{

对于(var i=1;i我认为您需要在迭代之间清除
everySecondLetter
otherletter
,否则您只需继续添加到上一次迭代的值的末尾。如下所示:

        do
        {
            for (var i = 1; i <= text.Length; i++)
            {
                if (i % 2 == 0)
                {
                    everySecondLetter += text[i - 1];
                }
                else
                {
                    otherLetters += text[i - 1];
                }
            }
            text = everySecondLetter + otherLetters;

            //*** Add these two lines:
            everySecondLetter = "";
            otherLetters = "";

            iterate++;
            Console.WriteLine(text);
        } while (iterate <= n);
do
{

对于(var i=1;i我认为您需要在迭代之间清除
everySecondLetter
otherletter
,否则您只需继续添加到上一次迭代的值的末尾。如下所示:

        do
        {
            for (var i = 1; i <= text.Length; i++)
            {
                if (i % 2 == 0)
                {
                    everySecondLetter += text[i - 1];
                }
                else
                {
                    otherLetters += text[i - 1];
                }
            }
            text = everySecondLetter + otherLetters;

            //*** Add these two lines:
            everySecondLetter = "";
            otherLetters = "";

            iterate++;
            Console.WriteLine(text);
        } while (iterate <= n);
do
{

对于(var i=1;我不是基于示例输出。他们想要“加密”新字符串,这就是为什么
text=everySecondLetter+otherLetters;
在其中的原因。我是一个冷酷的白痴。我怎么没有看到lol。谢谢。@JohnG不,目的是在第二次运行时迭代修改后的字符串,而不是基于示例输出。他们想要“加密”新字符串,这就是为什么
text=everySecondLetter+otherLetters;
在其中的原因。我是个冷酷的白痴。我怎么没看到这个lol。谢谢。@JohnG不,目的是在第二次运行时迭代修改过的字符串
using System;

namespace TestProject
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            var text = "This is a test!";
            var n = 2;
            var everySecondLetter = "";
            var otherLetters = "";

            //var newString = "";
            //var duplicateString = "";

            var iterate = 1;
            do
            {
                for (var i = 1; i <= text.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        everySecondLetter += text[i - 1];
                    }
                    else
                    {
                        otherLetters += text[i - 1];
                    }
                }
                text = everySecondLetter + otherLetters;
                iterate++;
                Console.WriteLine(text);
            } while (iterate <= n);

            Console.ReadLine();
        }
    }
}
        do
        {
            for (var i = 1; i <= text.Length; i++)
            {
                if (i % 2 == 0)
                {
                    everySecondLetter += text[i - 1];
                }
                else
                {
                    otherLetters += text[i - 1];
                }
            }
            text = everySecondLetter + otherLetters;

            //*** Add these two lines:
            everySecondLetter = "";
            otherLetters = "";

            iterate++;
            Console.WriteLine(text);
        } while (iterate <= n);