如何通过枚举的属性 获取枚举
时间: 2023-11-10 17:54:03 浏览: 37
要通过枚举的属性来获取枚举值,可以使用反射来实现。以下是一个示例代码:
```C#
using System;
enum MyEnum
{
Value1,
Value2,
Value3
}
class Program
{
static void Main()
{
foreach (MyEnum value in Enum.GetValues(typeof(MyEnum)))
{
Console.WriteLine(value);
}
}
}
```
这段代码中,我们使用`Enum.GetValues`方法来获取枚举类型的所有值,并通过`foreach`循环遍历输出每个枚举值。
相关问题
java如何通过枚举的属性 获取枚举
要通过枚举的属性获取枚举,可以使用Java的枚举类提供的静态方法values()。这个方法会返回一个包含所有枚举常量的数组。你可以通过循环遍历这个数组,找到匹配属性的枚举常量。
下面是一个示例代码:
```java
enum Fruit {
APPLE("red"), BANANA("yellow"), ORANGE("orange");
private String color;
Fruit(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}
public class Main {
public static void main(String[] args) {
String targetColor = "yellow";
for (Fruit fruit : Fruit.values()) {
if (fruit.getColor().equals(targetColor)) {
System.out.println(fruit);
}
}
}
}
```
上述代码中,枚举类Fruit有一个getColor()方法,用来获取枚举常量的颜色属性。在main方法中,我们通过遍历Fruit.values()获取所有的枚举常量,并判断它们的颜色属性是否与目标颜色相等。
c#通过Description获取枚举名
可以通过反射来获取枚举值的Description属性,然后从中获取枚举名称。具体实现可以参考以下代码:
```csharp
using System;
using System.ComponentModel;
enum MyEnum
{
[Description("EnumValue1")]
Value1,
[Description("EnumValue2")]
Value2
}
class Program
{
static void Main(string[] args)
{
MyEnum myEnum = MyEnum.Value1;
string enumName = Enum.GetName(typeof(MyEnum), myEnum);
DescriptionAttribute[] attributes = (DescriptionAttribute[])typeof(MyEnum).GetField(enumName).GetCustomAttributes(typeof(DescriptionAttribute), false);
string enumDisplayName = attributes.Length > 0 ? attributes[0].Description : enumName;
Console.WriteLine(enumDisplayName); // 输出 "EnumValue1"
}
}
```
在这个例子中,我们定义了一个枚举 `MyEnum`,它有两个枚举值 `Value1` 和 `Value2`,每个枚举值都有一个 `Description` 属性。在 `Main` 方法中,我们首先获取当前枚举值的名称,然后使用反射获取该枚举值的 `Description` 属性,并将其作为枚举名称返回。