gpt4 book ai didi

c# - 如何在 .Net 3.5 中枚举.GetValues?

转载 作者:行者123 更新时间:2023-11-30 19:46:16 25 4
gpt4 key购买 nike

在 .Net 4.0 中,我使用 System.Enum.GetValues(typeof(Gender)) 获取枚举项列表。
在一个完整的示例中,我曾经以这种方式查找枚举值:

    Gender retVal = Gender.Male;

foreach (Gender enumType in System.Enum.GetValues(typeof(Gender)))
{
if (enumType.ToString().Trim().ToUpper().Substring(0,1).Equals(stringToEnum.Trim().ToUpper()))
{
retVal = enumType;
break;
}
}

但是我怎么能在 .Net 3.5 (Pocket PC) 中做到这一点呢?
提前致谢 !

我使用下面的答案,但它对我不起作用。这是代码:

枚举值:

namespace Ionic.Zlib
{
public enum CompressionLevel
{
Level0 = 0,
None = 0,
Level1 = 1,
BestSpeed = 1,
Level2 = 2,
Level3 = 3,
Level4 = 4,
Level5 = 5,
Level6 = 6,
Default = 6,
Level7 = 7,
Level8 = 8,
BestCompression = 9,
Level9 = 9,
}
}

用法:

我只是想念初始化新对象。这现在有效:

public static Ionic.Zlib.CompressionLevel GetCompressionLevel(string Expression)
{
Ionic.Zlib.CompressionLevel result = Ionic.Zlib.CompressionLevel.None;
foreach (Ionic.Zlib.CompressionLevel item in EnumGetValues(new Ionic.Zlib.CompressionLevel()))
{
if(object.Equals(item.ToString().Trim().ToUpper(), Expression.Trim().ToUpper()))
{
result = item;
break;
}
}
return result;
}

最佳答案

有一篇博文 here (存档 here )通过反射实现:

public IEnumerable<Enum> GetValues(Enum enumeration)
{
List<Enum> enumerations = new List<Enum>();
foreach (FieldInfo fieldInfo in enumeration.GetType().GetFields(BindingFlags.Static | BindingFlags.Public))
{
enumerations.Add((Enum)fieldInfo.GetValue(enumeration));
}
return enumerations;
}

关于c# - 如何在 .Net 3.5 中枚举.GetValues?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8835264/

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