gpt4 book ai didi

c# - 自定义随机可枚举?

转载 作者:太空狗 更新时间:2023-10-29 23:57:29 24 4
gpt4 key购买 nike

我有一个类Rectangle它有一个方法 RandomPoint返回其中的一个随机点。看起来像:

class Rectangle {
int W,H;
Random rnd = new Random();

public Point RandomPoint() {
return new Point(rnd.NextDouble() * W, rnd.NextDouble() * H);
}
}

但我希望它是一个IEnumerable<Point>这样我就可以使用 LINQ在上面,例如rect.RandomPoint().Take(10) .

如何简洁的实现?

最佳答案

您可以使用迭代器 block :

class Rectangle
{
public int Width { get; private set; }
public int Height { get; private set; }

public Rectangle(int width, int height)
{
this.Width = width;
this.Height = height;
}

public IEnumerable<Point> RandomPoints(Random rnd)
{
while (true)
{
yield return new Point(rnd.NextDouble() * Width,
rnd.NextDouble() * Height);
}
}
}

关于c# - 自定义随机可枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13915676/

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