如何缩短C#中的特定代码?

如何缩短C#中的特定代码?,c#,fizzbuzz,C#,Fizzbuzz,我是初学者。我正在尝试通过一个名为SoloLearn的应用程序学习。 在应用程序中,它希望我用“*”替换一系列数字中的3及其倍数。 例如输入是n个数字,比如说7,输出应该是“12*45*7”(没有空格) 我试过这个,但最后这两个“如果”让我的眼睛流血 using System; using System.Collections.Generic; namespace SoloLearn { class Program { static void Main(str

我是初学者。我正在尝试通过一个名为SoloLearn的应用程序学习。 在应用程序中,它希望我用“*”替换一系列数字中的3及其倍数。 例如输入是n个数字,比如说7,输出应该是“12*45*7”(没有空格) 我试过这个,但最后这两个“如果”让我的眼睛流血

using System;
using System.Collections.Generic;


namespace SoloLearn
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = Convert.ToInt32(Console.ReadLine());
            
            //your code goes here
            for (int x = 1; x <= number; x++)
            {
                if (x%3==0)
                Console.Write("*");
                if (x%3==0)
                continue;
    
                {
                     Console.Write(x);   
                }
                
            }
            
        }
    }
}
使用系统;
使用System.Collections.Generic;
名称空间SoloLearn
{
班级计划
{
静态void Main(字符串[]参数)
{
int number=Convert.ToInt32(Console.ReadLine());
//你的密码在这里

对于(int x=1;x您不需要在此处使用
continue
语句。您可以使用
if
else
来代替两个
if
语句,例如:

for (int x = 1; x <= number; x++)
{
    if (x % 3 == 0)
    {
        Console.Write("*");
    }
    else
    {
         Console.Write(x);   
    }
}
用于(int x=1;x用于娱乐:

static void Main(string[] args)
{
    int number = Convert.ToInt32(Console.ReadLine());
            
    var seq = Enumerable.Range(1, number).Select(x=>x%3==0?"*":x.ToString());
    Console.WriteLine(string.Join("", seq));
}

当然,我可以将它进一步缩短为一行,但这似乎太过分了。可能还有一种方法可以获得隐式的
ToString()
转换。

for
循环的
稍短的版本是:

for (int x = 1; x <= number; x++)
{
    Console.Write(x % 3 == 0 ? "*" : $"{x}");
}
for(int x=1;x)看看,你会发现你可以在
if
..
for(var x=1;x
string.Concat(seq)
之后使用一个块。Concat(seq)
是做
string.Join(“,seq)
的一种稍微干净的方法。它被称为“三元运算符”