Hallo ich versuche, einen Benutzer zu einer Liste von Wörtern zu bekommen. Der nächste Schritt besteht darin, dass der Benutzer erneut eines der Wörter eintippt. Anschließend sucht das Programm nach Anagrammen in der Liste. Ich habe einen Weg gefunden, es zu lösen, aber NUR, wenn ich meine eigene Liste überprüfe. Ich würde gerne wissen, wie ich das mache, was ich brauche. keine Notwendigkeit für genauen Code und nur ein wenig Hilfe auf dem Weg. Immer noch neu bei C# und Codierung. Kümmern Sie sich nicht um die schwedischen Kommentare.So registrieren Sie eine Benutzereingabe in eine Liste C#
static void Main(string[] args)
{
Console.WriteLine("Skriv lite olika ord:");
string[] words = Console.ReadLine().Split(null);
Console.WriteLine("Tackar! Välj ett av orden för att kolla ifall det finns Anagram ordet:");
string[] word = Console.ReadLine().Split(null);
List<string> result = new List<string>();
bool match = false;
for (int i = 0; i < words.Length; i++)
words[i] = words[i].Trim();
//Loopar igenom alla ord i arrayen, börjar med första ordet.
for (int i = 0; i < words.Length - 1; i++)
{
result.Add(words[i]);
//Loopar igenom arrays med nästkommande ord.
for (int c = 2; c < words.Length; c++)
{
//Gämför bara ifall orden har lika många bokstäver och struntar i "tomma" ord
if(words[i].Length == words[c].Length && words[i] !="")
{
//Konverterar orden till CharArray
char[] a = words[i].ToUpper().ToCharArray();
char[] b = words[c].ToUpper().ToCharArray();
//Soreterar orden i bokstavsordning
Array.Sort(a);
Array.Sort(b);
match = false;
//sätter en counter för att kunna räkna
int counter = 0;
//Loppar igen alla bokstäver i orden man jämför
// Om den hittar någon bokstav som inte stämmer överens så returners False.
// Om alla bokstäver mathar så return true.
foreach(char x in a)
{
if (x == b[counter])
match = true;
else
{
match = false;
break;
}
counter++;
}
// om alla bokstäver "matchar" så läggs de till i listan
// har words[c] = ""; ifall den hittar tomma strings
if(match)
{
result.Add(words[c]);
words[c] = "";
}
}
}
// om listan bara blir 1 ord så hittas ingen match
if (result.Count() > 1 && result[0] != "")
{
Console.Write("Anagrams: ");
foreach (string s in result)
Console.Write(s + " ");
Console.WriteLine();
}
//återställer listan
result.Clear();
}
Console.ReadKey();
Wenn Sie wollen, dass der Benutzer ein Wort eingeben Sie Console.ReadLine nur anrufen können. Ich schlage vor, dass Sie nach einer leeren Zeichenfolge suchen, um das Programm zu beenden. Übrigens benutze words.Length anstatt words.Count() – bikeman868