Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
C# 存储可在循环中编辑的列表?_C#_Asp.net Mvc_For Loop_Enums - Fatal编程技术网

C# 存储可在循环中编辑的列表?

C# 存储可在循环中编辑的列表?,c#,asp.net-mvc,for-loop,enums,C#,Asp.net Mvc,For Loop,Enums,我想把我拥有的列表中的字符串转换成正确的枚举。使用enum.parse的代码可以做到这一点。我的代码的问题是,它在离开循环后不存储dispofilter。解决这个问题的好办法是什么 // Get Disposition enum if (model.FilterSet.Dispositions != null) { List<int> dispoFilters = new List<int>(); for (int i = 0; i < model.

我想把我拥有的列表中的字符串转换成正确的枚举。使用enum.parse的代码可以做到这一点。我的代码的问题是,它在离开循环后不存储dispofilter。解决这个问题的好办法是什么

// Get Disposition enum
if (model.FilterSet.Dispositions != null)
{
    List<int> dispoFilters = new List<int>();
    for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
    {
        dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
    }
}
//获取处置枚举
if(model.FilterSet.Dispositions!=null)
{
List dispoFilters=新列表();
对于(int i=0;i
离开IF语句后,代码不会存储dispoFilters

把你的声明提高一点

List<int> dispoFilters = new List<int>();
if (model.FilterSet.Dispositions != null)
{
    for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
    {
        dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
    }
}
List dispoFilters=new List();
if(model.FilterSet.Dispositions!=null)
{
对于(int i=0;i

用于定义变量可用的时间长度以及代码的哪些部分。通过在
if
语句中声明变量,退出if时就失去了作用域。

退出if语句后,代码不会存储dispoFilters

把你的声明提高一点

List<int> dispoFilters = new List<int>();
if (model.FilterSet.Dispositions != null)
{
    for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
    {
        dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
    }
}
List dispoFilters=new List();
if(model.FilterSet.Dispositions!=null)
{
对于(int i=0;i

用于定义变量可用的时间长度以及代码的哪些部分。通过在
if
语句中声明变量,您在退出if时失去了作用域。

这是因为您在
if
块中定义了
dispoFilters
,并且它在块外不可用。因此,请在
if
之外定义它,或者根据您需要它的位置将它定义到一个更高的。还要注意的是,它不是在循环外不可用(如您所述),而是在循环外可用,而是在您的
if
条件内可用

List<int> dispoFilters = new List<int>();
if (model.FilterSet.Dispositions != null)
 {
     for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
     {
         dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
     }
 }
List dispoFilters=new List();
if(model.FilterSet.Dispositions!=null)
{
对于(int i=0;i
根据您的代码:

if (model.FilterSet.Dispositions != null)
     {
         List<int> dispoFilters = new List<int>();
         for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
         {
             dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
         }
        //With in the if condition outside the loop you can still access dispoFilters 
     }
if(model.FilterSet.Dispositions!=null)
{
List dispoFilters=新列表();
对于(int i=0;i
这是因为您在
if
块内定义了
dispoFilters
,而在块外则不可用。因此,请在
if
之外定义它,或者根据您需要它的位置将它定义到一个更高的。还要注意的是,它不是在循环外不可用(如您所述),而是在循环外可用,而是在您的
if
条件内可用

List<int> dispoFilters = new List<int>();
if (model.FilterSet.Dispositions != null)
 {
     for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
     {
         dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
     }
 }
List dispoFilters=new List();
if(model.FilterSet.Dispositions!=null)
{
对于(int i=0;i
根据您的代码:

if (model.FilterSet.Dispositions != null)
     {
         List<int> dispoFilters = new List<int>();
         for (int i = 0; i < model.FilterSet.Dispositions.Count; i++)
         {
             dispoFilters.Add((int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), model.FilterSet.Dispositions[i].ToString())));
         }
        //With in the if condition outside the loop you can still access dispoFilters 
     }
if(model.FilterSet.Dispositions!=null)
{
List dispoFilters=新列表();
对于(int i=0;i
其他答案都是正确的,但您甚至不必使用for循环。以下是您可以做的:

var dispoFilters = model.FilterSet.Dispositions.ConvertAll(item => 
    (int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), item.ToString())));

我认为
model.FilterSet.Dispositions
是一个
列表
;如果没有,您必须在
ConvertAll
之前使用
toList()
,其他答案都是正确的,但您甚至不必使用for循环。以下是您可以做的:

var dispoFilters = model.FilterSet.Dispositions.ConvertAll(item => 
    (int)((RespondentStatus)Enum.Parse(typeof(RespondentStatus), item.ToString())));
我认为
model.FilterSet.Dispositions
是一个
列表
;如果没有,则必须在
ConvertAll
之前使用
toList()