我该如何从一个使用Linq的列表中取两个随机记录?如何从一个使用Linq的列表中取两个随机记录?
回答
没有直接的办法。你可以试试这个,但不是很漂亮。
int randomRecord = new Random().Next() % List.Count(); //To make sure its valid index in list
var qData = List.Skip(randomRecord).Take(1);
var qValue = qData.ToList().First();
这不会溢出,在结束了吗?不应该是%List.Count() - 1? – 2012-04-09 03:47:44
不要这么想......'m%p'会产生从'0'到'p-1'的值。 – Tenner 2012-04-09 03:49:08
我认为,%将始终给出List.Count() - 1的最大余数,这将是最后一个元素。 – 2012-04-09 03:49:08
Random rnd = new Random();
var sequence = Enumerable.Range(1, 2).Select(n => lst[rnd.Next(0, lst.Count)]).ToList();
不错,我不会用它..但真正可爱... +1 – gdoron 2012-04-09 03:53:14
对于Linq-to-Objects
和EF4
这是很简单的
db.Users.OrderBy(r => Guid.NewGuid()).Take(2)
对于Linq-to-SQL
您可以检查此文章 http://michaelmerrell.com/2010/03/randomize-result-orders-in-t-sql-and-linq-to-sql/
添加函数随机映射到SQL函数NEWID
到DataContext的。
partial class DataContext
{
[Function(Name = "NEWID", IsComposable = true)]
public Guid Random()
{
throw new NotImplementedException();
}
}
使用
var qry = from row in DataBase.Customers
where row.IsActive
select row;
int count = qry.Count();
int index = new Random().Next(count);
Customer cust = qry.Skip(index).FirstOrDefault();
http://blogs.msdn.com/b/ericlippert/archive/2011/01/31/spot-the-defect-bad-comparisons-part-four.aspx – 2012-04-09 06:30:25
什么?它是如何碰撞的? – AlfeG 2012-04-09 09:17:07
根据使用的排序算法,这可能会导致无限循环(在时间t1时A> B,在时间t2时A 2012-04-09 09:32:40
- 1. 随机从一个列表
- 2. C#从列表中随机记录与LINQ
- 3. 从限制日期的两个mysql表中选择一条随机记录?
- 4. Lisp随机化并使用两个函数从列表中拉入另一个
- 5. 如何使用两个列表的随机选择
- 6. 如何从列表中获得两个随机数字?
- 7. 如何从两个表使用LINQ
- 8. 如何获得记录从一个DataTable中使用LINQ
- 9. 使用Linq如何从两个表中获取用户列表和最后一次登录
- 10. SciPy的 - 如何从一个列表中随机提取的阵列
- 11. 如何随机选取列表中的下一个元素?
- 12. 如何从两个表中获取的记录数在MySQL
- 13. 如何从两个SQL表中获取不匹配的记录?
- 14. 如何使用linq获取表中的下一条记录?
- 15. 同一个网站的随机记录
- 16. 正在获取单个记录使用两个条件LINQ
- 17. 将一个随机Guid列添加到Linq to Entities查询以获取随机记录
- 18. 如何选择一列中唯一的一组随机记录?
- 19. 从表中取出随机唯一记录
- 20. 如何从两个表中获取记录根据第二个表行记录指定列名称
- 21. 从php中随机记录取自mysql
- 22. 我如何随机地将一个列表分为两个列表
- 23. 如何加入两个相关的表,而一个记录是指另一个中的两个记录?
- 24. 如何从存储过程中检索N个随机记录?
- 25. 活动记录:获取两个随机对象?
- 26. 如何采取最后一个记录从列表
- 27. Freebase;选择一个随机记录?
- 28. 存档5个随机记录从一个小时从一个表,也使重量的四分之一
- 29. 如何从列表中选择一个随机字符串
- 30. 如何从列表中选择一个随机英语单词
检查这个帖子... [1]:http://stackoverflow.com/questions/1364033/linq-take-question – BizApps 2012-04-09 03:46:19