新手需要随机记录的帮助

时间:2012-07-15 15:35:26

标签: c# .net random hit

  

可能重复:
  Random row from Linq to Sql

对于.NET来说,我是个新手。我有这行代码,它从包含指定系统名称的DB中提取记录。我有可能使用相同的系统名称命名多个主题。

我希望的是一种随机选择主题的方法,如果多个主题包含该系统名称。如果只有一个存在,这将显示为现在。用于提取具有指定系统名称的主题的代码如下所示:

public virtual Topic GetTopicBySystemName(string systemName){
  if (String.IsNullOrEmpty(systemName)) return null;
  var query = from t in _topicRepository.Table
    where t.SystemName == systemName
  select t;
  return query.FirstOrDefault();
}

为了达到上述目的,我需要改变什么?

1 个答案:

答案 0 :(得分:0)

不是我可以测试的机器,但是:

Random random = new Random();
int count = query.Count();
if(count <= 1) return query.FirstOrDefault();
return query.Skip(random.Next(0, count)).First();