Алгоритм для действительно случайных чисел не может существовать как , определение случайных чисел:
Имеющие непредсказуемые результаты и, в идеальном случае, все одинаково вероятные результаты; следуя из такого выбора; недостаток в статистической корреляции.
существуют лучшие или худшие генераторы псевдослучайного числа (PRNGs), т.е. абсолютно предсказуемые последовательности чисел, которые трудно предсказать, не зная информации, названной семя .
Теперь, PRNGs, для которых чрезвычайно трудно вывести семя, криптографически безопасны . Вы могли бы хотеть искать их в Google если, именно это Вы ищете.
Иначе (действительно случайно ли это или не является философским вопросом), должен использовать случайные источники данных. Например, непредсказуемые физические количества, такие как шум, или измеряющий радиоактивный распад.
Они все еще подвергаются нападениям, потому что они могут быть независимо измерены, имейте предвзятость и так далее. Таким образом, это действительно хитро. Это сделано со специальным оборудованием, которое является обычно довольно дорогим. Я понятия не имею, насколько хороший /dev/random
, но я держал бы пари, что это не достаточно хорошо для криптографии (большинство программ криптографии идет со своим собственным RNG, и Linux также ищет аппаратные средства RNG при запуске).
В зависимости от типа объекта в ObservableCollection
... Я предполагаю, что это int
для этого примера:
IEnumerable<int> obsCollection = (IEnumerable<int>)GetCollection();
var list = new List<int>(obsCollection);
Учитывая, что ObservableCollection
реализует IEnumerable
вы можете передать его конструктору List
:
List<T> myList = new List<T>(myObservableCollection);
Где T
- это тип элементов в коллекции.
ObservableCollection
реализует IList
, поэтому вы сможете использовать ] ToList ()
на нем.
Свойство Items возвращает список IList. См. Http://msdn.microsoft.com/en-us/library/ms132435.aspx