2

我正在尝试制作一个显示数字的程序:

    1, 10   +30
    2, 40     (the scale goes up in this pattern by adding 20 to the last number added)
    3, 90   +50
    4, 160
    5, 250  +70

到目前为止,我有这个代码:

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.IO;

 namespace Myloop
 {
      class Program
      {
          static void Main(string[] args)
          {
              FileStream filestream = new FileStream("loopdata.csv", FileMode.Create);
              var streamwriter = new StreamWriter(filestream);
              streamwriter.AutoFlush = true;
              Console.SetOut(streamwriter);
              Console.SetError(streamwriter);

               int forloop;
               for (forloop = 1; forloop < 21; forloop++)
                    Console.WriteLine(forloop);

               Console.ReadLine();

          }
      }
 }

这显示了第一个数字序列 1 - 20,但是任何人都可以给我任何指导如何在控制台应用程序中执行它旁边的另一个序列吗?以及如何将这些输出到 .csv 文件,因为到目前为止我所拥有的信息并未出现在 .csv 文件中。

4

3 回答 3

4

首先将控制台输出流式传输到文件

FileStream filestream = new FileStream("loopdata.csv", FileMode.Create);
var streamwriter = new StreamWriter(filestream);
streamwriter.AutoFlush = true;
Console.SetOut(streamwriter);
Console.SetError(streamwriter);
于 2013-10-31T21:50:42.147 回答
2

如果你看一下数字,你会发现两个数字之间的差异可以使用以下公式计算:

valueInSecondColumn = 20 * (valueInFirstColumn + 1) - 10;

应用这些知识,您可以制定如下代码:

List<string> data = new List<string>();
int calculatedValue = 10;

for (int i = 1; i <= 20; i++)
{
    data.Add(string.Format("{0}, {1}", i, calculatedValue));
    calculatedValue += 20 * (i + 1) - 10;
}

for (int i = 0; i < data.Count; i++)
{
    Console.WriteLine(data[i]);
}

File.WriteAllLines(@"data.txt", data.ToArray());
于 2013-10-31T23:23:24.660 回答
0

一个完全未经测试的相当丑陋的实现......

int col3 = 30;
bool col3set = true;

for( int col1 = 1; col1 <=20; col1++ )
{
    int col2 = col1*col1*10;

    Console.WriteLine(col1 + "," + col2 + " +" + (col3set ? col3.ToString() : ""));

    col3set = !col3set; //flip setting col3 so it's on for every odd row
    col3 += 20;
}
于 2013-10-31T22:07:47.417 回答