2009-08-15 61 views
0

我正在尝试从最频繁发生的集合中获取项目。如果我是在SQL我会做这样的事..C#linq,获取集合中最频繁的项目

select top(1) extension from database.table 
group by extension 
order by count(extension) desc 

,但我尝试这样做使用LINQ。

有人可以协助翻译吗?

到目前为止,我有这一点,但它不工作...

string topExtension = (from c in extensions select c).GroupBy(d => d).OrderByDescending(e => e.Count()).SingleOrDefault(); 

回答

3

尝试FirstOrDefault代替。

编辑:哎呀,对不起。尝试.FirstOrDefault().Key

+0

同样的错误......不能隐式地将类型'System.Linq.IGrouping '转换为'string' – Grant 2009-08-15 04:00:04

+0

ahh that worked .. thanks! – Grant 2009-08-15 04:01:55

+0

您应该在这里使用.First().FirstOrDefault()可以返回null,这将导致.Key上的NullReferenceException。 – 2009-08-16 02:59:09