在C#中创建所有ASCII字符的数组

Che*_*eop 0 c# arrays ascii

我目前正在创建一个程序,它使用数组来分类文本文档中的ASCII字符.在创建阵列本身时,我很困惑,这是项目功能的关键部分.还建议我使用charfrequency对象创建数组,我知道我的代码对于这个特定的项目来说并不完全正确.我使用了另一个类似项目的代码,但不确定如何将其转换为从文件中读取文本的项目.我已经包含了我的charfrequency类代码,以供参考我正在尝试做的一般概念.我还需要以这样的格式显示结果:

H(72) = 1
e(101) = 1
l(108) = 2
o(111) = 1
.(46) = 1 
Run Code Online (Sandbox Code Playgroud)

我不太了解编程,所以使用相对简单的术语进行详细解释会非常有帮助.

{
public class CharFrequency
{
    private char m_character;
    private long m_count;

    public CharFrequency(char ch)
    {
        Character = ch;
        Count = 0;
    }

    public CharFrequency(char ch, long charCount)
    {
        Character = ch;
        Count = charCount;
    }

    public char Character
    {
        set
        {
            m_character = value;
        }

        get
        {
            return m_character;
        }
    }

    public long Count
    {
        get
        {
            return m_count;
        }
        set
        {
            if (value < 0)
                value = 0;

            m_count = value;
        }
    }

    public void Increment()
    {
        m_count++;

    }

    public override bool Equals(object obj)
    {
        bool equal = false;
        CharFrequency cf = new CharFrequency('\0', 0);

        cf = (CharFrequency)obj;

        if (this.Character == cf.Character)
            equal = true;

        return equal;
    }

    public override int GetHashCode()
    {
        return m_character.GetHashCode();
    }

    public override string ToString()
    {
        String s = String.Format("Character '{0}' ({1})'s frequency is {2}", m_character, (byte)m_character, m_count);

        return s;
    }

}
Run Code Online (Sandbox Code Playgroud)

}

Ale*_*kov 6

由于Unicode匹配ASCII码,您只需选择ASCII范围Enumerable.Range:

var allAscii = Enumerable.Range('\x1', 127).ToArray();
Run Code Online (Sandbox Code Playgroud)

请注意,C#/ .Net使用UTF-16(C#和UTF-16字符)来表示char,但如果您只查找ASCII范围,则不存在问题(因为ASCII覆盖了代码为1-127的字符,因此不会与代理冲突char在字符串中编码为2 的对).