You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中foreach遍历int数组为何可用char类型?输出空白原因?

C# foreach遍历int数组使用char类型的疑问解答

1. 为什么允许用char作为迭代变量类型?

C#的foreach语句允许迭代变量类型与数组元素类型不同,只要元素类型能显式转换为迭代变量类型,且目标是值类型。编译器会自动在每次迭代时插入强制转换的代码,相当于把每个int元素手动转成char,所以这种写法是合法的。

2. 为什么输出空白?

你数组里的1、2、3、4对应的是ASCII控制字符,这类字符属于不可打印的系统控制符号(比如(char)1是"标题开始"标记,(char)2是"文本开始"标记),控制台无法显示这类字符,所以看起来是空白。如果换成可打印的ASCII数值(比如65对应'A',97对应'a'),就能看到正常输出:

int[] arr = new int[] { 65, 97, 33 };
foreach (char item in arr)
{
    Console.WriteLine(item); // 输出:A、a、!
}

内容的提问来源于stack exchange,提问作者Niyazi Babayev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:02:37