我有以下代码,但我错误
错误6 foreach语句无法对'int'类型的变量进行操作,因为'int'不包含'GetEnumerator'的公共定义C:\ Dev \ DEV \ Code \ MvcUI \ Models \ MappingModel.cs 100 13 MvcUI < / p>
注意:
string [] projectID;
Class Project
{
int id {get; set;}
string Name {get;set;}
}
public IEnumerable<SelectListItem> GetStudents()
{
List<SelectListItem> result = new List<SelectListItem>();
foreach (var id in Convert.ToInt32(projectID))
{
foreach( Project project in Project.Load(id))
result.Add(new SelectListItem
{
Selected = false,
Text = emp.ID.ToString(),
Value = emp.Name
});
return result.AsEnumerable();
}
}
答案 0 :(得分:2)
您需要在foreach语句中将projectId中的字符串转换为int。把转换放在foreach中。
试试这个
public IEnumerable<SelectListItem> GetStudents()
{
List<SelectListItem> result = new List<SelectListItem>();
foreach (var id in projectID)
{
int intId = Convert.ToInt32(id);
foreach( Employee emp in Project.Load(intId))
result.Add(new SelectListItem
{
Selected = false,
Text = emp.ID.ToString(),
Value = emp.Name
});
}
return result.AsEnumerable();
}
还有其他问题。你是从循环内部返回的,所以你只能让它为第一个id工作。我试着在上面的代码中纠正它
答案 1 :(得分:2)
projectID
似乎是string[]
,您尝试将其转换为int[]
。如果是这样,您可以执行以下操作以使foreach循环正常工作
foreach (var id in projectID.Select(x => Convert.ToInt32(x))) {
...
}
答案 2 :(得分:0)
Convert.ToInt32(projectID)不会返回一个int集合,它会返回一个Int实例,因此你不能使用foreach语句。
你想要达到什么目标?
答案 3 :(得分:0)
public IEnumerable<SelectListItem> GetStudents()
{
return from id in projectID
from employee in Project.Load(int.Parse(id))
select new SelectListItem
{
Text = employee.ID.ToString(),
Value = employee.Name
};
}
备注:您的命名约定有点奇怪:GetStudents使用返回员工的Project.Load。