C# 从所有值的子集创建匿名枚举值

C# 从所有值的子集创建匿名枚举值,c#,autofixture,C#,Autofixture,假设有一个枚举类型定义为: enum Statuses { Completed, Pending, NotStarted, Started } 我想让Autofixture为我创建一个值,而不是挂起 因此(假设循环生成),我想得到: 已完成、未启动、已启动、已完成、未启动……最简单的方法是使用AutoFixture的生成器: 也有其他方法,但这是特别查询最简单的方法。最简单的方法是使用AutoFixture的生成器: 还有其他方法,但这是特别查询最简单的方法。这

假设有一个枚举类型定义为:

enum Statuses
{
    Completed,
    Pending,
    NotStarted,
    Started
}
我想让Autofixture为我创建一个值,而不是挂起

因此(假设循环生成),我想得到:


已完成、未启动、已启动、已完成、未启动……

最简单的方法是使用AutoFixture的
生成器:


也有其他方法,但这是特别查询最简单的方法。

最简单的方法是使用AutoFixture的
生成器:


还有其他方法,但这是特别查询最简单的方法。

这里是。不幸的是,不起作用:AutoFixture无法从Ploeh.AutoFixture.Kernel.ISpecimenBuilderComposer创建实例,很可能是因为它没有公共构造函数,它是抽象或非公共类型。您使用的是哪个版本的AutoFixture?使用AutoFixture 3,如果执行
fixture.Create()
(其中
fixture
是一个
newfixture()
实例),您将以循环方式获得每个
状态
枚举值。你甚至不需要我前面提到的。如果这不起作用,那么如果你能用一些代码更新问题,重现你所描述的内容,那就太好了……不幸的是,我不得不坚持使用2.15.2.0。。。我一到家就去看看最新的。谢谢这里是。不幸的是不起作用:AutoFixture无法从Ploeh.AutoFixture.Kernel.ISpecimenBuilderComposer创建实例,很可能是因为它没有公共构造函数,是抽象或非公共类型。您使用的是哪个版本的AutoFixture?使用AutoFixture 3,如果执行
fixture.Create()
(其中
fixture
是一个
newfixture()
实例),您将以循环方式获得每个
状态
枚举值。你甚至不需要我前面提到的。如果这不起作用,那么如果你能用一些代码更新问题,重现你所描述的内容,那就太好了……不幸的是,我不得不坚持使用2.15.2.0。。。我一到家就去看看最新的。谢谢我感兴趣的是对任何枚举类型执行类似但完全通用的操作。我想忽略基于字符串匹配的任何值,例如未知或未初始化。有没有办法截取EnumGenerator返回的值?@Schneider很复杂。请回答新问题。谢谢马克。下面是您甚至可以执行的qn
fixture.Create()。首先(s=>s!=Statuses.Pending)
我对为任何枚举类型执行类似但完全通用的操作感兴趣。我想忽略基于字符串匹配的任何值,例如未知或未初始化。有没有办法截取EnumGenerator返回的值?@Schneider很复杂。请回答新问题。谢谢马克。下面是您甚至可以执行的qn
fixture.Create()。首先(s=>s!=Statuses.Pending)
var statuses = fixture
    .Create<Generator<Statuses>>()
    .Where(s => Statuses.Pending != s)
    .Take(10);
var status = fixture
    .Create<Generator<Statuses>>()
    .Where(s => Statuses.Pending != s)
    .First();