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

Display a Sequence in a Console in C#

如何显示更像这样的输出

Goal: < 1 , 2 , 1 , 2 , 1 >

NOT like: < 1, 2, 1 , 2, 1, > // there is a comma at the end

Currently it displays: 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 + ", ")
      }
 }

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

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());
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+=", ";
    }
}

您需要保留您的结果,直到您知道自己已经完成,然后在您获得完整列表后打印它们。这是一种方法:

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));
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);

你可以做的是保留一个你追加的输出字符串,在添加 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);