C# Can';不能转换成字符

C# Can';不能转换成字符,c#,C#,这只是一个简单的问题,我有点困惑 据我所知,我实际上没有在任何地方使用字符作为模型。children是一个IList和模型。Name是一个字符串,但是我的foreach循环给出了一个错误,它无法将字符转换为Catalog.department,如果您需要更多信息,请随时询问 private void DisplayOnWebsiteChecked(Object sender, EventArgs e) { var departments = model.N

这只是一个简单的问题,我有点困惑

据我所知,我实际上没有在任何地方使用字符作为模型。children是一个
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
是一个字符串,您试图对其进行迭代,这将该字符串视为
IEnumerable

departments是一个
字符串
,您试图将
字符串
视为
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
。我很高兴你对我的评论做出了回应,因为我现在看到你忘了对你的答案进行投票