Исключение "System.ArgumentOutOfRangeException" - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день, господа. Проблема в следующем коде:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
 
namespace Test
{
    class Word
    {
        public Word(string szNominative,
                    string szGenitive,
                    string szDative,
                    string szAccusative,
                    string szPrepositional)
        {
            Nominative = szNominative;
            Genitive = szGenitive;
            Dative = szDative;
            Accusative = szAccusative;
            Prepositional = szPrepositional;
        }
 
        public string Nominative { get; set; }
        public string Genitive { get; set; }
        public string Dative { get; set; }
        public string Accusative { get; set; }
        public string Prepositional { get; set; }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            var w = Parse(Console.ReadLine());
 
            Console.WriteLine(w.Nominative);
            Console.WriteLine(w.Genitive);
            Console.WriteLine(w.Dative);
            Console.WriteLine(w.Accusative);
            Console.WriteLine(w.Prepositional);
 
            Console.ReadKey();
        }
 
        static Word Parse(string szWord)
        {
            var _vowel = new Regex("[а|я|о|е|у|ю|и|э]");
 
            if (_vowel.IsMatch(szWord.Substring(szWord.Length - 1, 1)))
            {
                return new Word(szWord,
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "е"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "е"));
            }
            else
            {
                return new Word(szWord,
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "а"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "а"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"));
            }
        }
    }
}
Вылетает исключение с описанием:

Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.

В областях
return new Word(szWord,
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "е"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "е"));
и
return new Word(szWord,
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "а"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "а"),
                                szWord.Remove(szWord.Length - 1, 1).Insert(szWord.Length, "у"));
Прошу помочь, возможно вопрос глуп и я дурак, но все же

Решение задачи: «Исключение "System.ArgumentOutOfRangeException"»

textual
Листинг программы
.Insert(szWord.Length - 1, "у"),

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы