首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从字符串返回枚举值?

从字符串返回枚举值,可以通过以下方法实现:

  1. 使用 switch 语句:
代码语言:csharp
复制
public enum MyEnum
{
    Value1,
    Value2,
    Value3
}

public static MyEnum GetEnumValue(string value)
{
    switch (value)
    {
        case "Value1":
            return MyEnum.Value1;
        case "Value2":
            return MyEnum.Value2;
        case "Value3":
            return MyEnum.Value3;
        default:
            throw new ArgumentException("Invalid value");
    }
}
  1. 使用 Enum.Parse 方法:
代码语言:csharp
复制
public static MyEnum GetEnumValue(string value)
{
    MyEnum result;
    if (Enum.TryParse(value, out result))
    {
        return result;
    }
    else
    {
        throw new ArgumentException("Invalid value");
    }
}
  1. 使用 Enum.Parse 方法并指定忽略大小写:
代码语言:csharp
复制
public static MyEnum GetEnumValue(string value)
{
    MyEnum result;
    if (Enum.TryParse(value, true, out result))
    {
        return result;
    }
    else
    {
        throw new ArgumentException("Invalid value");
    }
}
  1. 使用 Enum.Parse 方法并指定枚举类型:
代码语言:csharp
复制
public static Enum GetEnumValue(Type enumType, string value)
{
    Enum result;
    if (Enum.TryParse(enumType, value, out result))
    {
        return result;
    }
    else
    {
        throw new ArgumentException("Invalid value");
    }
}

注意:以上代码示例均使用 C# 语言编写。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C语言自学(一)C语言基础

    auto 声明自动变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或函数返回值类型 const 声明只读变量 continue 结束当前循环,开始下一轮循环 default 开关语句中的其他分支 do 循环语句的循环体 double 声明双精度浮点型变量或函数返回值类型 else 条件语句否定分支(与if连用) enum 声明枚举类型 extern 声明变量或函数是在其他文件或本文件的其他位置定义 float 声明浮点型变量或翻书返回值类型 for 一种循环语句 goto 无条件跳转语句 if 条件语句 int 声明整型变量或函数 long 声明长整型变量或函数返回值类型 register 声明寄存器变量 return 子程序返回语句 short 声明短整型变量或函数 signed 声明有符号类型变量函数 sizeof 计算数据类型或变量长度(即所占子结束) static 声明静态变量 struct 声明结构体类型 switch 用于开关语句 typedef 用于给数据类型取别名 unsigned 声明无符号类型变量或函数 union 声明共用体类型 void 声明函数无返回值或无参数,声明无类型指针 volatile 说明变量在程序执行中可被隐含地改变 while 循环语句的循环条件

    02

    【深入浅出C#】章节 2:数据类型和变量:基本数据类型和引用类型

    在C#中,基本数据类型和引用类型是两种不同的数据类型,它们在作用和使用上有一些明显的区别。基本数据类型是直接存储数据值的简单类型。这些类型包括整数类型(如int、long)、浮点数类型(如float、double)、字符类型(如char)和布尔类型(如bool)。通常用于存储简单的数值或字符,其大小和内存布局是固定的。 引用类型是存储对数据对象的引用的类型。引用类型包括字符串类型(如string)、数组类型和自定义类类型等。引用类型的变量实际上存储的是对数据对象的引用,而不是数据对象本身。这意味着引用类型的变量可以指向不同的对象,可以通过引用对对象进行操作和修改。 基本数据类型和引用类型的区别在于它们在内存中的存储方式和传递方式。基本数据类型直接存储在栈(Stack)上,它们的赋值和传递是通过复制数据值实现的。而引用类型的变量存储的是对堆(Heap)上数据对象的引用,它们的赋值和传递是复制引用,共享同一个数据对象。 基本数据类型和引用类型在使用上也存在一些差异。基本数据类型的操作通常是直接的,而引用类型需要通过引用来访问和操作对象的成员。此外,引用类型可以具有更丰富的功能和行为,如调用方法、继承和多态等。

    01

    复合类型以及函数总结

    For循环的另一形式: 先定义一个函数,例如int p[100];然后for(auto a:p),:的左面定义一个变量,右边则是数组的名字,这条语句的意思便是将p数组的所有的元素输出来。作用就是可以在不知道数组的大小的时候将数组中所有的元素输出。 指针:定义指针变量:指针的类型 指针名;使指针指向一个变量: 指针名=&变量名;变量的类型和指针的类型应该相同,此时*指针就相当与这个变量,例如 int *a=&m; *a=k;则是将k的值赋给m;另外还可以定义指向指针的指针:例如int**p=*a; 定义const指针: 1.coonst 类型 *指针;此时指针所指向的可以是一个整型变量,也可以是一个常变量,但不能通过这个指针来改变对应的变量的值,但是变量本身可以改变(不通过指针)。 2. 类型 const 指针;这种方式定义的指针地址只能是固定的不可以再进行改变。 3. .const 类型const 指针:指针指向的内存不能改变,并且指针指向的值不能进行改变。动态对象:动态对象不像静态对象,动态对象是没有名字的,通过指针间接操作。 new 定义变量:int *p=new 动态对象的类型(其中动态对象的初始值);删除时:delete 指针;定义数组:int *p=new int[100];删除:delete [] 指针;定义指针:需要调用头文件删除之后的指针不可以在进行使用。 引用: 左值引用 &代表左值引用,左值引用的是表达式结束后仍存在的值,既是左值引用的必有地址,左值引用时可以引用变量,但变量必须先进行定义。例如 int a=1;int&p=a; 右值引用: &&代表的是右值引用,右值引用可以引用表达式或者是具体的某个值,例如0;此类都是无法取址的,像例如a++是右值引用,而像++a则是左值引用。 结构体: 定义的方式:Struct 结构体名字 { 结构体成员 };切记最后有一个;。定义一个结构体变量直接可以 结构体名字 变量名。输入输出时要通过指针来输出结构体中的各元素;例如:struct kl{ Int a; };输出时则是cout<<kl.a;联合: 联合的定义方式与结构体相似,用union代替struct。但是联合应用时只可使用一个成员。 枚举: 定义时使用enum定义的是不限定作用域的枚举,而enum class或enum struct定义的则是限定作用域的枚举,限定作用域的优点是可以在不同的作用域内设定同样的成员名字,而不限定作用域的枚举则不能这样。 定义时例如:enum light{red,green,yellow};默认的这三个的值是0,1,2;也可以自己设定枚举中成员的值;例 enum light{red=2,green=6,yellow=88};枚举的其中一个用处可以在switch中使用,case后面所跟得值也可以是枚举定义的成员,从而更明了表示一种可能。 数组: 定义方式1 数组类型 数组名[数组大小]; 2 数组类型 数组名[]={数组中元素}; 3 char 数组名[]=”字符串”; 数组包括的元素为字符串中的字符和最后一个元素\0;切记一个数组不可以被另一个数组初始化。多为数组的初始化也可以,类似于一维数组的初始化方式。通过for语句和数组元素的下标访问数组元素时可以定义下标为size_t类型,然后通过for循环的方式访问数组中的所有元素。for(int e:数组名)这种方式来访问数组中的所有元素,若要改变数组中所有的元素需将语句修改为for(int &e:数组名)。也可以通过指针来访问数组的元素,定义数组的时候数组名的地址自定义为数组中第一个元素的地址,则访问数组的所有元素时可以通过for(int p=a;p<p+10;p++) { Cout<<*p; } decltype关键字可以提取变量的类型来定义另一个变量的类型, 例:int a; decltype(a) l;这样l的类型就和a的类型是相同的。 也可以通过迭代器来访问数组中的每一个元素。头文件是,有两个关键词,begin(),end(),括号内是数组名。 字符串 Char类型的字符串在头文件有几个函数, strlen()返回字符串的长度。Strcmp(p1,p2)判断p1,p2的关系,若等于则返回0,大于则返回正值,小于则返回负值。 Strcat(p1,p2)将后者附加到前者后面,并返回前者的值。 Strcpy(p1,p2)将后者复制到前者后面,并返回前者的值。 String:头文件。定义:string n;若是定义相同的多个元素组成的字符串,则可以string l(n,’l’);函数:getline(is,s)通过输入流把其中的一行输入到s中。 s.empty()判断字符串s 是否为空。s.size();返回s中字符个数。 s.c.str() 将字符串转换为字符数组。s

    01
    领券