クラス用に Visual Studio でアナグラム アナライザーをプログラムしようとしていますが、別のクラスからゲッターを呼び出すとリストが空になります。
public class UserInput
{
private String fileName;
private string text;
private string[] words;
private List<string> preparedWord = new List<string>();
Regex reg = new Regex(@"(\s-|[^A-Za-z0-9])");
private string t = "testing";
public void promptFile()
{
Console.WriteLine("Enter a .txt file");
this.fileName = Console.ReadLine();
this.fileConversion();
this.wordSeperator();
// foreach (string word in this.preparedWord)
//{
// System.Console.WriteLine(word);
//}
//{
// System.Console.WriteLine(this.preparedWord.Count);
//}
}
public String getFileName
{
get { return this.t; }
}
private void fileConversion()
{
StreamReader streamReader = new StreamReader(this.fileName);
this.text = streamReader.ReadToEnd();
streamReader.Close();
Console.WriteLine(text);
}
public void wordSeperator()
{
this.words = text.Split(' ', ',', '.', ':','\t');
foreach (string s in words)
{
this.preparedWord.Add(reg.Replace(s, ""));// @"\W\S", ""));
}
}
public List<string> getPreparedList{
get
{
return this.preparedWord;}
}
}
}
ここで、不要な文字を削除し、有効な文字のリストを作成しました。表示されるかどうかをテストする文字列を作成しましたが、表示されましたが、準備されたWordリストが正しく表示されません。
class AnagramManager
{
FileToStringConverter fileString = new FileToStringConverter();
UserInput u = new UserInput();
// string pattern = @"[\d-]";
//Regex reg;
String test = "123rrtdfr34 h%$5 yy.yy hjh-hk 788995a";
public static string RemoveDigits(string key)
{
return Regex.Replace(key, @"\d", "");
}
public void writeList()
{
foreach (string word in this.u.getPreparedList)
{
System.Console.WriteLine(word);
}
System.Console.WriteLine(this.u.getFileName);
}
}
単語を書き込むメソッドを呼び出すと、空白になり、カウントが 0 であると表示されます。UserInput クラスにリストを書き込むと、すべてが正常になります。
なぜこれが起こっているのかについて何か提案はありますか?