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

C#中Array.IndexOf返回-1问题求助:预期索引为2却始终获取-1

问题解决:Array.IndexOf返回-1而非预期索引2

问题根源

你的数组geburtsjahr是short[]类型,但你查找的是int类型的1966。Array.IndexOf采用严格类型匹配逻辑——只有当查找值的类型和数组元素类型完全一致时,才会匹配成功。你之前把1966转成int,相当于在short数组里找int值,自然找不到,返回-1。

解决方案

将查找值转换为short类型,而非int:

修正后的代码

var geburtsjahr = new short[4] { 1998, 1992, 1966, 2006 }; 

// 现在会返回正确的索引2
int index = Array.IndexOf(geburtsjahr, (short)1966);

Console.WriteLine(index); 

更简洁的写法

C#里可以用后缀s直接表示short类型的字面量,代码可以简化为:

int index = Array.IndexOf(geburtsjahr, 1966s);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:52:00