2016-02-04 3 views
-1

Как получить элементы случайного выбора с помощью GUID? Я пробовал его следующим способом, но не сортировал?5 строк Выбрано случайным образом из списка с использованием GUID

var Query1 = (from _factor in db.tblFactors orderby Guid.NewGuid() select _factor) 
    .Take(5); 
var Query2 = (db.tblFactors 
    .Select(x => new { x.ID, x.Cost, x.UserID, fldOrder = Guid.NewGuid() }) 
     .OrderBy(x => x.fldOrder)) 
     .Take(5); 

Конечно проблема здесь два:

-Один вот почему мой код не работает

-Вторы, делает этот метод для случайного выбора с помощью GUID верно или нет

+0

Для вопроса 2 проверьте http://stackoverflow.com/questions/467271/how-random-is-system-guid-newguid –

+0

Спасибо, но это не помогло решить проблему –

+0

Я не вижу ничего случайного о это из-за генерации GUID, создающего справедливо упорядоченные результаты (близкие к тому же, но не точно, у них будет много общности) - возможно, положить реальное случайное число в, а затем упорядочить, что было бы лучшей стратегией здесь? Как бы то ни было, я бы заподозрил высокую вероятность для первых или последних 5 строк в наборе. –

ответ

0
List<tblFactor> _factor = db.tblFactors.ToList(); 
_factor = _factor.OrderBy(o => Guid.NewGuid()).ToList(); 
_factor = _factor.Take(5).ToList(); 
lst1.DataSource = _factor; 
lst1.DataBind(); 

5 строк, выбранных случайным образом из списка с помощью GUID

исправлена!

Смежные вопросы