获取一个Array长度并创建一个具有该长度的新数组

时间:2017-10-26 15:55:10

标签: c# arrays

我是C#的新手 - 就像真的很新,所以我几乎没有经验 - 我想尽可能简单地完成这个目标,但我会接受任何你能给予的帮助。我正在制作一个基本的刽子手游戏 - 我已经到了需要将用户输入的字符替换为新数组然后用&替换所有数组的地步。 #39 *'或者' _'随你。但我无法弄清楚如何将新阵列设置为游戏中确定的长度。

这个代码看起来很恐怖,因为它是由一个傻瓜构建的 - 但我感谢你的帮助。

<can-import from="../status-searchFilter/" ($change)="update(*filters)">
    <status-searchfilter {^filter-List}="*filters"/>
</can-import>

是的 - 我确实知道他们会遇到问题,如果(playOne ==&#34;&#34;)&#39;以后我只是试着让它现在起作用:)

3 个答案:

答案 0 :(得分:2)

char[] playOneDisguised = new char [charPlayOne.Length];

或简化您的代码:char[] playOneDisguised = Enumerable.Repeat('*', charPlayOne.Length).ToArray();

答案 1 :(得分:0)

简单 - 您使用数字参数声明一个新数组:

// src is a char[] array
int cnt = src.Count();
char[] dest = new char[cnt];

...无论如何,我回答的主要原因是让你知道一些能帮助你顺利完成的事情:重构。

重构是将代码拆分/重新组织为易于管理,易于阅读/维护/故障排除的块。我们的想法是让每个功能都做一件事(并且只有一个改变的理由) - 如果你愿意,可以在“单一责任原则”上进行一些谷歌搜索;它可能是关于如何编写漂亮,干净的代码的重要概念。

无论如何,看看顶级功能有多少东西。这是重构的一个很好的例子:

    string playerOneWord = "";
    do
    {
        Console.WriteLine("Okay player 1 - enter your word!");
        playerOne = Console.ReadLine();
        if (playerOne == "")
        {
            Console.WriteLine("Please enter an actual word.");
        }
        else
        {
            playerOneWord = playerOne;
            validWord = true;
        }
    } while (validWord == false);

......这是做什么的?这是从第一名球员那里得到的一句话。那么,为什么不把它分解成自己的功能呢?

string playerOneWord = GetWordFromPlayerOne();

// ... later on, elsewhere

private string GetWordFromPlayerOne()
{
    // your code to get the input from player 1, looping until its valid
}

...希望这是有道理的。无论如何,祝你好运你的编码: - )

答案 2 :(得分:0)

    string playerOne = null;
    bool validWord = false;
    do
    {
        Console.WriteLine("Okay player 1 - enter your word!");
        playerOne = Console.ReadLine();
        if (playerOne.Length <= 0) Console.WriteLine("Please enter an actual word.");
        else validWord = true;
    } while (validWord == false);
    Console.WriteLine("Excellent, I'm now going to clear this chat so player 2 can't see your word!");
    Thread.Sleep(1500);
    Console.Clear();
    Console.WriteLine("Hello Player 2! Player 1 has chosen a word, the word looks like this: ");
    Thread.Sleep(1200);
    for (int i = 0; i < playerOne.Length; i++)
    { 
        if ((i % 2) == 0) Console.Write(playerOne[i]);
        else Console.Write("*");
    }
    Console.ReadLine();

你不需要复制字符串来隐藏一些字符。