我想迭代一个枚举,所以我可以用该枚举的每个值调用一个方法.我怎样才能做到这一点?
enum Base { ANC, BTC, DGC };
XmlDocument doc;
doc = vircurex.get_lowest_ask(Base.ANC)
doc = vircurex.get_lowest_ask(Base.BTC)
doc = vircurex.get_lowest_ask(Base.DGC)
Run Code Online (Sandbox Code Playgroud)
我希望它变成类似的东西
foreach (var val in values)
doc = vircurex.get_lowest_ask(....)
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我有一个propertygrid,需要在propertygrid内创建一个组合框并显示int值(1到9),我发现使用enum是最简单的方法,但是enum无法显示int值,即使我尝试将其强制转换为int ,但我不知道如何返回所有值。还有其他方法吗?提前致谢。下面是我的代码。
public class StepMode
{
private TotalSteps totalSteps;
public TotalSteps totalsteps
{
get { return totalSteps; }
set { value = totalSteps; }
}
public enum TotalSteps
{
First = 1,
Second = 2,
Three = 3,
Four = 4,
Five = 5,
Six = 6,
Seven = 7,
Eight = 8,
Nine = 9
}
}
Run Code Online (Sandbox Code Playgroud) 当我声明枚举时,我经常添加一个NOT_SET = 0值来知道实例何时尚未初始化.当我枚举这种枚举的值时(如此处和此处所述),丢弃NOT_SET值的最佳方法是什么?我能想到的最好的是
Enum.GetValues(typeof(T)).Cast<int>().Where(item => (0 != (int)item)).Cast<T>();
Run Code Online (Sandbox Code Playgroud)
我不喜欢它,因为与所有那些Cast <>的迭代太多了.我更喜欢基于的东西
(T[]) Enum.GetValues(typeof(T))
Run Code Online (Sandbox Code Playgroud)
没有所有的Cast <>.
C++ 枚举问题。
所以我有一个文件列表及其 ID,我需要对其进行迭代并执行操作。大多数内容是相同的,但有一些特定于文件的事情需要完成。我尝试将文件 ID 放入枚举中,然后对其进行迭代。然而,文件 ID 是不连续的,并且会跳跃。
目前,我有类似的东西
for(int i = 0; i < FILE_ENUM_MAX; i++)
{
currentFile = myEnum(i);
// do stuff
}
enum myEnum {
file1 = 0x1111,
file2 = 0x8000,
file3 = 0x75,
file4 = 0x120,
FILE_ENUM_MAX = 4
}
Run Code Online (Sandbox Code Playgroud)
这是行不通的;我只是浏览文件 0、1、2 和 3。我的想法是,我不能通过询问项目 N 来获取枚举中的第 N 个项目。那么迭代此枚举的最佳方法是什么?或者我应该摆脱它?我可能可以按数字顺序排列项目,但我更喜欢顺序无关紧要的解决方案。
这是枚举;
public enum myEnum{
A= 1,
B= 2,
C= 3,
D= 4,
}
Run Code Online (Sandbox Code Playgroud)
我需要一个列表,其中包含除D之外的所有内容,这样,它的工作原理就可以了;
List<Enum>{myEnum.A, myEnum.B, myEnum.C}
但当然非常丑陋。如何直接转换和过滤此枚举的D