Вывести частоту символов в строке и заменить строку другой подстрокой

Требовалось из строк создать текст и уже в нём подсчитать частоту появления символов и заменить строку подстрокой. Попытался это сделать в последних двух функциях, но

Ошибка CS1061 "MyString[]" не содержит определения для "Replace", и не удалось найти доступный метод расширения "Replace", принимающий тип "MyString[]" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).

Ошибка CS0161 "Text.Replacement(MyString, MyString)": не все ветви кода возвращают значение.

Ошибка CS0019 Оператор "!=" невозможно применить к операнду типа "MyString" и "char". (Подскажите, пожалуйста

class Text
{
    int size;
    MyString[] myStrings;

    public int Size
    {
        get
        {
            return size;
        }
    }
    public Text()
    {
        size = 0;
    }
    public void AddString(MyString str)
    {
        Array.Resize(ref myStrings, ++size);
        myStrings[size - 1] = str;
    }
    public void RemoveString(int delIndex)
    {
        if (delIndex > size)
        {
            throw new IndexOutOfRangeException();
        }
        var newData = new MyString[myStrings.Length - 1];
        for (int i = 0; i < delIndex; i++)
        {
            newData[i] = myStrings[i];
        }
        for (int i = delIndex; i < newData.Length; i++)
        {
            newData[i] = myStrings[i + 1];
        }
        myStrings = newData;
        size--;
    }
    public void Erase()
    {
        myStrings = new MyString[0];
        size = 0;
    }
    public int Allsymbols()
    {
        int symbols = 0;
        foreach (var item in myStrings)
        {
            symbols += item.Count();
        }
        return symbols;
    }
    public void Counting()
    {
        int Count = 0;
        var itm = '\\';
        foreach (var item in myStrings)
        {
            foreach (var cha in myStrings) 
                if (cha != itm && cha == item) 
                    Count++; 
            if (Count != 0) 
                Console.WriteLine("Количество символов {0} = {1}", item, Count); 
            Count = 0; 
            itm = item; 
        }
    }
    public void Replacement( MyString str1, MyString str2)
    {
        string[] words = myStrings.Split(' ');
        myStrings.Replace(str1, str2);
    }

}
namespace ConsoleApp1

{

class Program
{
    static void Main(string[] args)
    {

        var str1 = new MyString("adafaf");
        var str2 = new MyString("123123");
        var str3 = new MyString("!#!$$");
        var str4 = new MyString("asdasfdfwfwew123");
        Text text = new Text();
        text.AddString(str1);
        text.AddString(str2);
        text.AddString(str3);
        text.AddString(str4);
        //text.RemoveString(1);
        //text.Erase();
        Console.WriteLine(text.Counting());
        Console.ReadKey();
    }
}

}

using System;

using System.Collections.Generic; using System.Text;

namespace ConsoleApp1 { class MyString { char[] mystring;

    public char[] ToChar
    {
        get
        {
            return mystring;
        }
    }
    public MyString(char[] ch)
    {
        mystring = ch;
    }
    public MyString(string str)
    {
        mystring = str.ToCharArray();
    }
    public MyString()
    {

    }
    public int Count()
    {
        return mystring.Length;
    }
    public int Numbers()
    {
        int num = 0;
        for (int i = 0; i < mystring.Length; i++)
        {
            if (char.IsDigit(mystring[i]))
            {
                num++;
            }
        }
        return num;
    }
}

}

введите сюда код

Ответы (1 шт):

Автор решения: aepot

Ошибка CS1061 "MyString[]" не содержит определения для "Replace", и не удалось найти доступный метод расширения "Replace", принимающий тип "MyString[]" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).

string[] words = myStrings.Split(' ');
foreach (var word in words)
{
    word.Replace(str1, str2);
}

Ошибка CS0161 "Text.Replacement(MyString, MyString)": не все ветви кода возвращают значение.

я не нашел в выложенном вами коде источника этой ошибки

Ошибка CS0019 Оператор "!=" невозможно применить к операнду типа "MyString" и "char".

здесь вы пытаетесь сравнить массив символов с символом

if (cha != itm

Попробуйте еще один цикл, перебирающий символы внутри cha.

Старайтесь не использовать var, это усложняет читаемость кода, используйте сразу нужный тип.

→ Ссылка