在C#中在控制台中显示序列

时间:2015-08-20 22:53:17

标签: c# .net console sequence

如何显示看起来更像

的输出
  

目标:< 1,2,1,2,1>

     

不喜欢:< 1,2,1,2,1,> //最后有一个逗号

     

目前显示:1,2,1,1,2,1,

 for (int i = 1; i <= 7; i++)
 {
    int coin1 = RandomFlip(); //1 head 2 tails
    int coin2 = RandomFlip();

     if(coin1 == coin2)
      {
       Console.Write(coin1 + ", ")
      }
 }

5 个答案:

答案 0 :(得分:2)

由于你不知道哪个迭代是最后一个循环,你必须建立一个结果列表,然后再显示它。

var flipValues = List<int>();
for (int i = 1; i <= 7; i++)
{
   int coin1 = RandomFlip(); //1 head 2 tails
   int coin2 = RandomFlip();
   if(coin1 == coin2)
   {
       flipValues.Add(coin1);
   }
}

Console.Write(string.Join(", ", flipValues.Select(f => f.ToString());

答案 1 :(得分:2)

您需要保留结果,直到您知道自己已完成为止,然后在拥有整个列表后打印它们。这是一种方法:

List<int> results = new List<int>();
for (int i = 1; i <= 7; i++)
{
    int coin1 = RandomFlip(); //1 head 2 tails
    int coin2 = RandomFlip();

    if(coin1 == coin2)
    {
        results.Add(coin1);
    }
}
Console.WriteLine(string.Join(", ", results.Select(ToString));

答案 2 :(得分:2)

var res = String.Join(", ", 
    Enumerable.Range(1, 7)
    .Select(n => 
    {
        int coin1 = RandomFlip(); //1 head 2 tails
        int coin2 = RandomFlip();

        return new { coin1, coin2 };
    })
    .Where(c => c.coin1 == c.coin2)
    .Select(c => c.coin1)
);
Console.Write(res);

答案 3 :(得分:1)

List<int> numbers = new List<int>();
for (int i = 1; i <= 7; i++)
{
    int coin1 = RandomFlip();
    int coin2 = RandomFlip();
    if (coin1 == coin2)
    {
        numbers.Add(coin1);
    }
}
string output = "";
for(int i = 0; i < numbers.Count; i++)
{
    output+=numbers[i].ToString();
    if (i < numbers.Count-1)
    {
        output+=", ";
    }
}

答案 4 :(得分:1)

您可以做的是保留附加的输出字符串,在添加coin1输出之前添加逗号。如果那里没有任何内容,你只需要确保不要在字符串中添加逗号。

string output = "";
for (int i = 1; i <= 7; i++)
{
    int coin1 = RandomFlip(); //1 head 2 tails
    int coin2 = RandomFlip();

    if (coin1 == coin2)
    {
        if (output != "")
            output += ", ";
        output += coin1;
    }
}
Console.Write(output);