【问题标题】:5 rows Selected randomly from the list using GUID5行使用GUID从列表中随机选择
【发布时间】:2016-02-04 16:46:23
【问题描述】:

如何使用 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进行随机选择是否正确

【问题讨论】:

  • 对于问题 2,请查看stackoverflow.com/questions/467271/…
  • 谢谢,但对解决问题没有帮助
  • 由于 GUID 生成创建了相当有序的结果(接近相同但不完全相同,它们将有很多共性),我看不到任何关于此的随机数 - 也许将一个真正的随机数放入和那么在这里订购会是一个更好的策略吗?事实上,我怀疑集合中的前 5 行或最后 5 行的概率很高。
  • 基于此,由于您引发的 GUID 限制,这里的问题有些无法回答
  • 非常感谢,但是这个问题是问我的,我认为他回答了这个问题!那么如何随机选择 List !?

标签: c# random lambda guid


【解决方案1】:
List<tblFactor> _factor = db.tblFactors.ToList();
_factor = _factor.OrderBy(o => Guid.NewGuid()).ToList();
_factor = _factor.Take(5).ToList();
lst1.DataSource = _factor;
lst1.DataBind();

使用 GUID 从列表中随机选择 5 行

已修复!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多