C#交替数字,更有效的方法来获得相同的结果?

时间:2018-09-18 16:25:59

标签: c#

好吧,所以我在这里有这个功能代码,想知道是否有更好的方法,例如更简洁或更实用的方法来做同样的事情?

预期输出将是:1,-1,2,-2 ...

我相信可以删除“ int x”的使用或将其放入局部变量的循环中,也许有人可以向我展示情况如何?

namespace AlternatingPosNegNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] numbers = new int[100];
            int[] numbPos = new int[100];
            int[] numbNeg = new int[100];
            int x = 0;

            for (int i =numbers[x]; i <numbers.Length; i++, x++)
            {
                numbPos[i] = i;
                numbNeg[i] = i - (i * 2);

                Console.WriteLine(numbPos[i]);
                Console.WriteLine(numbNeg[i]);

            }
            Console.ReadKey();
        }
    }
}

2 个答案:

答案 0 :(得分:3)

  

是否有更好的方法,如更简洁...

int[] result = Enumerable.Range(1, 100).SelectMany(i => new[] {i, -i}).ToArray();

答案 1 :(得分:-1)

您可以创建一个公式,为您提供所需的序列

   for (int x = 1; x <= 10; x++)
    {
        int y = (x + 1) / 2 * (x % 2 == 0 ? -1 : 1);
        Console.WriteLine(y);
    }