if处出现异常,无法运行

img


就是在C#中,如何用一个外来元素找到在数组中那元素的位置,还有就是修改一下我的代码,谢谢。请尽可能说得简单一点。

将你的程序作如下修改:

img

或者,我写了一个LINQ的实现:

img

程序示例代码:

注:以下程序使用的是C# 10(.NET 6)实现。

using System;
using System.Linq;

namespace ConsoleApp1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            // 创建一个原始的包含26个小写英文字母([a-z])的字符数组
            var alphalets = Enumerable.Range('a', 26)
                .Select(x => (char)x)
                .ToList();
            Console.WriteLine("26个小写英文字母([a-z])的字符数组为:");
            Console.WriteLine(string.Join(",", alphalets));
            Console.WriteLine("请输入a-z的任意字符串...");
            var input = Console.ReadLine()?
                .ToLower() // 将用户输入全部转换成小写
                .ToArray(); // 将用户输入的字符串转换成字符(char)数组 
            // 如果用户没有输入,则返回(不往下继续执行)
            if (input is not { Length: > 0 })
            {
                Console.WriteLine("请输入字符串...");
                return;
            }

            // 使用LINQ的Select方法遍历用户输入的字符数组,然后用IndexOf方法找到每个用户输入的字符在原始字符数组中的索引位置
            var result = input.Select(x => new Result(x, alphalets.IndexOf(x)));

            // 输出结果
            foreach (var item in result)
            {
                Console.WriteLine($"字符{item.Alphalet}所在位置:{item.Display}");
            }

            Console.ReadKey();
        }
    }

    internal record Result(char Alphalet, int Index)
    {
        public string Display => Index == -1 ? "未找到" : Index.ToString();
    }
}

异常?什么异常啊?报错呢

将两个for语句中的小于等于换为小于

代码语法错误,检查代码

你这个肯定数组越界了呀,小于长度,下标从0开始的