C# 存储可在循环中编辑的列表?
我想把我拥有的列表中的字符串转换成正确的枚举。使用enum.parse的代码可以做到这一点。我的代码的问题是,它在离开循环后不存储dispofilter。解决这个问题的好办法是什么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.
// 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()