在 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);
如何显示更像这样的输出
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);