gpt4 book ai didi

c# - C# 中有 "upto"方法吗?

转载 作者:IT王子 更新时间:2023-10-29 04:28:12 26 4
gpt4 key购买 nike

下面是一段打印出 0 到 9 数字平方的代码:

for (int i = 0; i < 10; i++)
Console.WriteLine(i*i);

通过 for 循环从 0 到 N 做 1 的事情是一个非常常见的习惯用法。

这是一个 UpTo 方法,表达了这一点:

class MathUtil
{
public static void UpTo(int n, Action<int> proc)
{
for (int i = 0; i < n; i++)
proc(i);
}
}

上面的正方形示例现在是:

MathUtil.UpTo(10, (i) => Console.WriteLine(i * i));

我的问题是,标准 C# 库是否带有类似上述 UpTo 的内容?

理想情况下,我希望有一种方法可以让“UpTo”成为所有整数对象的方法。所以我可以这样做:

var n = 10;

n.UpTo(...);

这在 C# 中可行吗?

最佳答案

把它变成一个 extension method (注意 n 参数之前的 this,它定义了此方法操作的类型):

static class MathUtil
{
public static void UpTo(this int n, Action<int> proc)
{
for (int i = 0; i < n; i++)
proc(i);
}
}

用法:

10.UpTo((i) => Console.WriteLine(i * i));

注意:虽然上述方法调用不是特别直观。请记住,代码是一次编写,多次阅读。

也许允许像下面这样的东西可能会稍微好一点,但老实说我还是会写一个foreach循环。

0.UpTo(10 /*or 9 maybe*/, (i) => Console.WriteLine(i * i));

如果你想要这个,那么你可以像这样写一个扩展方法:

public static void UpTo(this int start, int end, Action<int> proc)
{
for (int i = start; i < end; i++)
proc(i);
}

更改 <<=如果你想要一个包容性的上限。

关于c# - C# 中有 "upto"方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com