Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SelectToken将c#中的字符串转换为枚举_C#_String_Enums - Fatal编程技术网

如何使用SelectToken将c#中的字符串转换为枚举

如何使用SelectToken将c#中的字符串转换为枚举,c#,string,enums,C#,String,Enums,请参考下面给出的代码片段 foreach(qbInvoiceLineArray中的var invoiceDescription) { lineDescription=新行(); lineDescription.Description=Convert.ToString((字符串)invoiceDescription.SelectToken(QBConfig.invoiceDescription)); 发票.行.添加(行说明); } 公共类QbInvoiceViewModel { 公共十进制余额{

请参考下面给出的代码片段

foreach(qbInvoiceLineArray中的var invoiceDescription)
{
lineDescription=新行();
lineDescription.Description=Convert.ToString((字符串)invoiceDescription.SelectToken(QBConfig.invoiceDescription));
发票.行.添加(行说明);
} 
公共类QbInvoiceViewModel
{
公共十进制余额{get;set;}
公共列表LinkedTxn{get;set;}
公共日期时间DueDate{get;set;}
公共日期时间TxnDate{get;set;}
公共十进制总金额{get;set;}
公共列表行{get;set;}
}
公共班级线
{
公共字符串说明{get;set;}
public LineDetailTypeEnum DetailType{get;set;}
}
公共枚举LineDetailTypeEnum
{
SalesItemLineDetail
}
这行代码

lineDescription.Description=Convert.ToString((字符串)invoiceDescription.SelectToken(QBConfig.invoiceDescription));

可用于将字符串转换为c#中的字符串。在c#中,这种类型的代码也可用于将字符串转换为int。但是如何使用这种类型的代码将字符串转换为枚举?

您不使用convert.ToString to strings to other things,而是使用convert.ToXxx

如果
invoiceDescription.SelectToken(QBConfig.invoiceDescription)
返回枚举成员名称或值的字符串(或实际上是字符串的对象,如您的强制转换所示),并且您希望将其转换为特定的枚举,则应
enum.Parse
它,如
var e=enum.Parse((string)invoiceDescription.SelectToken(QBConfig.invoiceDescription))
,当然用枚举的实际名称替换InvoiceToken

如果
invoiceDescription.SelectToken(QBConfig.invoiceDescription)
返回的int是枚举成员值(不是名称),您也可以选择
Convert.ToInt32()
将其转换为枚举类型;任何int都可以强制转换为枚举

用于枚举分析


(可能还值得注意的是,
Enum.Parse
比其他形式更新;如果您使用的是较旧版本的.NET,那么您看到的是类似于
(T)Enum.Parse(这里是typeof(T),string_)
)的东西。

为什么要将
Convert.ToString
string
参数一起使用?这是否回答了您的问题?要添加到字符串到int部分,请使用ined,尽管我的目的不是让这个答案成为如何将字符串转换为int的详尽列表,因为重点是枚举