C# Can';不能转换成字符
这只是一个简单的问题,我有点困惑 据我所知,我实际上没有在任何地方使用字符作为模型。children是一个C# Can';不能转换成字符,c#,C#,这只是一个简单的问题,我有点困惑 据我所知,我实际上没有在任何地方使用字符作为模型。children是一个IList和模型。Name是一个字符串,但是我的foreach循环给出了一个错误,它无法将字符转换为Catalog.department,如果您需要更多信息,请随时询问 private void DisplayOnWebsiteChecked(Object sender, EventArgs e) { var departments = model.N
IList
和模型。Name是一个字符串,但是我的foreach循环给出了一个错误,它无法将字符转换为Catalog.department,如果您需要更多信息,请随时询问
private void DisplayOnWebsiteChecked(Object sender, EventArgs e)
{
var departments = model.Name;
var departmentChildren = model.Children;
if (departmentChildren != null)
{
int zeroChildren = 0;
if (departmentChildren.Count.Equals(zeroChildren));
{
foreach (Department Children in departments)
{
}
}
}
}
编辑:这个问题实际上已经解决了,我将在下面发布修复的代码,因为事实证明我把列表放错了地方,把代码搞乱了
private void DisplayOnWebsiteChecked(Object sender, EventArgs e)
{
var departments = model.Name;
var departmentChildren = model.Children;
if (departmentChildren != null)
{
int zeroChildren = 0;
if (departmentChildren.Count.Equals(zeroChildren));
{
foreach (Department Child in departmentChildren)
{
}
}
}
}
model.Name是一个字符串
您已分配:
var departments = model.Name;
这里的department是string
类型,而string实现了IEnumerable
,这就是为什么当您使用foreach
枚举department时,foreach
循环中的项是char
类型
你正在使用
foreach (Department Children in departments)
{
}
这里的子项类型为char
,因为department是一个字符串,而您已将其指定为department
类型,这就是您出现此错误的原因
model.Name是一个字符串
您已分配:
var departments = model.Name;
这里的department是string
类型,而string实现了IEnumerable
,这就是为什么当您使用foreach
枚举department时,foreach
循环中的项是char
类型
你正在使用
foreach (Department Children in departments)
{
}
这里的子项类型为char
,因为department是一个字符串,而您已将其指定为department
类型,这就是您出现此错误的原因 在您的代码中:
var departments = model.Name;
我假设该名称是一个字符串,然后您正在枚举字符集合。在您的代码中:
var departments = model.Name;
我假设名称是一个字符串,那么您正在枚举字符集合。
部门
是分配中的字符串
:
var departments = model.Name;
这就是为什么您将子对象
设置为char
应该是:
foreach (Department Children in departmentChildren)
{
}
部门
是分配的字符串
:
var departments = model.Name;
这就是为什么您将子对象
设置为char
应该是:
foreach (Department Children in departmentChildren)
{
}
问题在于这一行:
foreach (Department Children in departments)
departments
是一个字符串,您试图对其进行迭代,这将该字符串视为一个IEnumerable
问题在于这一行:
foreach (Department Children in departments)
departments
是一个字符串,您试图对其进行迭代,这将该字符串视为IEnumerabledepartments是一个字符串
,您试图将字符串
视为IEnumerable
因为string
实现了IEnumerable
,所以foreach循环中的项属于char
类型
和
int zeroChildren = 0;
if (departmentChildren.Count.Equals(zeroChildren));
{
}
因此,在这里,如果部门子项
集合为空,foreach
循环的含义是什么?部门是一个字符串
,您试图将字符串
视为一个IEnumerable
因为string
实现了IEnumerable
,所以foreach循环中的项属于char
类型
和
int zeroChildren = 0;
if (departmentChildren.Count.Equals(zeroChildren));
{
}
因此,这里,如果部门子项
集合为空,foreach
循环的含义是什么…?变量部门
看起来像是一个字符串。它是:)我自己修复了,谢谢大家的回复。@HelloWorld我看到你修复了编译错误,但我怀疑你的代码有逻辑错误。如果departmentChildren.Count==0
则无需调用foreach(departmentChildren中的部门子项)
。循环不会执行,因为集合是空的。var departments
看起来像一个字符串。它是:)我自己修复了它,谢谢所有的回复。@HelloWorld我知道你已经修复了编译错误,但我怀疑你的代码有逻辑错误。如果departmentChildren.Count==0
则无需调用foreach(departmentChildren中的部门子项)
。循环不会执行,因为集合为空。+1,但我要添加:。。。由于部门是一个字符串,并且string
实现了IEnumerable
。我很高兴您回复了我的评论,因为我现在看到您忘记了对您的答案+1进行投票,但我想补充一句:。。。由于部门是一个字符串,string
实现了IEnumerable
。我很高兴你对我的评论做出了回应,因为我现在看到你忘了对你的答案进行投票