Если вы используете UITableView
в VC1, затем перезагрузите его в viewWillAppear
, тогда вы получите обновление или это вы обновите свой список
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.tableview.reloadData()
}
Создайте где-нибудь экземпляр класса Random
. Обратите внимание, что очень важно не создавать новый экземпляр каждый раз, когда вам нужно случайное число. Вы должны повторно использовать старый экземпляр, чтобы добиться единообразия сгенерированных чисел. Вы можете иметь где-нибудь поле static
(будьте осторожны с проблемами безопасности потоков):
static Random rnd = new Random ();
Попросите экземпляр Random
дать вам случайное число с максимальным из числа элементов в ArrayList
:
int r = rnd.Next (list.Count. );
Вывести строку:
MessageBox.Show ((строка) список [r]);
Печать случайным образом название страны из файла JSON.
Модель:
public class Country
{
public string Name { get; set; }
public string Code { get; set; }
}
Implementaton:
string filePath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, @"..\..\..\")) + @"Data\Country.json";
string _countryJson = File.ReadAllText(filePath);
var _country = JsonConvert.DeserializeObject<List<Country>>(_countryJson);
int index = random.Next(_country.Count);
Console.WriteLine(_country[index].Name);
Создайте экземпляр Случайный
:
Random rnd = new Random();
Получите случайную строку:
string s = arraylist[rnd.Next(arraylist.Count)];
Помните, что если вы делаете это часто, вы должны повторно использовать объект Случайный
. Поместите его в класс как статическое поле, чтобы он инициализировался только один раз, а затем обращайтесь к нему.
Вы можете сделать:
list.OrderBy(x => Guid.NewGuid()).FirstOrDefault()
Обычно я использую эту небольшую коллекцию методов расширения:
public static class EnumerableExtension
{
public static T PickRandom<T>(this IEnumerable<T> source)
{
return source.PickRandom(1).Single();
}
public static IEnumerable<T> PickRandom<T>(this IEnumerable<T> source, int count)
{
return source.Shuffle().Take(count);
}
public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source)
{
return source.OrderBy(x => Guid.NewGuid());
}
}
Для строго типизированного списка это позволит вам написать:
var strings = new List<string>();
var randomString = strings.PickRandom();
Если все, что у вас есть, это ArrayList, вы можете использовать его:
var strings = myArrayList.Cast<string>();