Ich muss ein Frequenzanalyse-Konsolenprogramm mit C# machen. Es muss die 10 häufigsten Buchstaben aus einer Textdatei anzeigen. Ich habe es geschafft, die ersten 10 vom Programm gelesenen Buchstaben und die Häufigkeit jedes Zeichens anzuzeigen. Ich weiß jedoch nicht, wie man das Wörterbuch sortiert. Dies ist der Code, den ich bisher habe.Wie sortiere ich ein Wörterbuch in C# .net
Ich muss dem Benutzer auch die Option zur Frequenzanalyse im sensitiven Modus geben (wie es jetzt ist) und Groß-/Kleinschreibung beachten. Hilfe mit diesem Problem wird ebenfalls geschätzt. Danke!
static void Main(string[] args)
{
// 1.
// Array to store frequencies.
int[] c = new int[(int)char.MaxValue];
// 2.
// Read entire text file.
// string root = Server.MapPath("~");
// string FileName = root + "/App_Data/text.txt";
//string s = File.ReadAllText(FileName);
foreach (string line in File.ReadLines(@"c:\Users\user\Documents\Visual Studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\App_Data\text.txt", Encoding.UTF8)) {
var fileStream = new FileStream(@"c:\Users\user\Documents\Visual Studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\App_Data\text.txt", FileMode.Open, FileAccess.Read);
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
string line2;
while ((line2 = streamReader.ReadLine()) != null)
{
// process the line
// 3.
// Iterate over each character.
foreach (char t in line)
{
// Increment table.
c[(int)t]++;
}
// 4.
// Write all letters found.
int counter = 0;
for (int i = 0; i < (int)char.MaxValue; i++)
{
if (c[i] > 0 && counter < 11 &&
char.IsLetterOrDigit((char)i))
{
++counter;
Console.WriteLine("Letter: {0} Frequency: {1}",
(char)i,
c[i]);
}
}
}
}
Console.ReadLine();
}
}
https://www.dotnetperls.com/sort-dictionary Gehen Sie durch diesen Link! – Sameer
Sie können kein 'Dictionary' sortieren. Es gibt kein Konzept der Ordnung. Was Sie tun können, ist, das Wörterbuch in eine Liste/Enumerable zu konvertieren und das zu sortieren, wie es @aquinas getan hat. –