У меня есть приложение, которое выбирает случайное слово из текстового файла, загруженного в массив,
В настоящее время я делаю это:
.xaml:
<Label x:Name="GameWords" Text="Press 'Generate a Word' to get started" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
<Button x:Name="GenerateWord" Text="Generate a Word" Clicked="GetWord" />
xaml.cs:
async void GetWord(object sender, EventArgs e)
{
var WordsList = new List<string>();
using (var stream = await FileSystem.OpenAppPackageFileAsync("txtWords.txt"))
using (var reader = new StreamReader(stream))
{
string line;
while ((line = reader.ReadLine()) != null)
{
WordsList.Add(line);
}
}
string[] allWords = WordsList.ToArray();
var random = new Random();
int randNum = random.Next(1, 267751); /*Max lines in txtWords.txt */
string newWord = allWords[randNum];
GameWords.Text = newWord;
}
Как вы можете видеть, каждое нажатие кнопки загружает весь файл txtWords.txt (267751 слов) в массив allWords.
В идеале то, что я хочусделать, это загрузить массив один раз, вероятно, при загрузке приложения, а затем ссылаться на него в функции GetWord.Если я переместу часть кода, куда загружаю массив за пределы функции, я не могу ссылаться на массив в GetWord?
Каков наилучший способ структурировать мой код для достижения этой цели?