Я пытаюсь создать программу, которая подсчитывает символы ASCII в файле и отслеживает, сколько раз каждый символ появляется в файле.Затем он должен записать вывод в файл.Если в файле указано «Hello», выходной файл должен быть отформатирован так, чтобы он показывал:
H (72) 1 e (101) 1 l (108) 2 o (111) 1. (46) 1
Код, который я написал до сих пор, приведен ниже:
using System.IO;
using System;
using System.Collections;
class CharacterFrequency
{
char ch;
int frequency;
public char getCharacter()
{
return ch;
}
public void setCharacter(char ch)
{
this.ch = ch;
}
public int getfrequency()
{
return frequency;
}
public void setfrequency(int frequency)
{
this.frequency = frequency;
}
static void Main()
{
string OutputFileName;
string InputFileName;
Console.WriteLine("Enter the file path");
InputFileName = Console.ReadLine();
Console.WriteLine("Enter the outputfile name");
OutputFileName = Console.ReadLine();
StreamWriter streamWriter = new StreamWriter(OutputFileName);
string data = File.ReadAllText(InputFileName);
ArrayList al = new ArrayList();
al.Add(data);
//create two for loops to traverse through the arraylist and compare
for (int i = 0; i < al.Count; i++)
{
//create variable k to count the repeated element
//(if k>0 it means that the particular element is not the first instance)
int k = 0;
//count frequency variable
int f = 0;
for (int j = 0; j < al.Count; j++)
{
//compare the characters
if (al[i].Equals(al[j]))
{
f++;
if (i > j) { k++; }
}
}
if (k == 0)
{
//Display in the correct format
Console.Write(al[i] + "(" + (int)al[i] + ")" + f + " ");
}
}
}
}
Я получаю сообщение об ошибке в последней строке кода (Console.Write), в котором говорится: «Указанное преобразование недопустимо».Я знаю, что эта программа может быть написана неправильно, но мне трудно пытаться выполнить эту задачу, используя список массивов.Я выполнил эту задачу, используя Sorted Dictionary в предыдущей программе, но теперь мне нужно использовать Array List.Любой совет о том, как исправить ошибку и как выглядит моя программа, очень ценится.