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

How do I shorten that specific code in C#?

我是 C# 初学者。我正在尝试通过名为 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);   
                }
                
            }
            
        }
    }
}

我试了一下,但似乎找不到任何解决方法。 您如何仅使用给出的代码中的内容来缩短这些?

那里不需要 continue 声明。您可以使用 ifelse 而不是两个 if,例如:

for (int x = 1; x <= number; x++)
{
    if (x % 3 == 0)
    {
        Console.Write("*");
    }
    else
    {
         Console.Write(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}");
}