Use*_*987 -1 c# linq asp.net list count
我有一个字符串列表,我按照它们在列表中的出现进行分组,如下所示(其中key是这些字符串的列表):
mostCommonKeywords = key.GroupBy(v => v)
.OrderByDescending(g => g.Count()) // here I get the count number
.Select(g => g.Key)
.Distinct()
.ToList();
Run Code Online (Sandbox Code Playgroud)
我现在要做的就是当它们被整理出来时,我想得到它们的数量,因为LINQ可以清楚地区分它们的数量并将它们排序......我怎样才能得到列表中每个字符串的计数出现? ?
编辑:
假设我的计数值看起来像这样:
124
68
55
48
32
19
13
10
Run Code Online (Sandbox Code Playgroud)
我不能简单地将这个值的1加到一个名为"Count"的变量中,如@octavioccl建议的那样.我显然必须将它们存储在某种列表或其他内容中......
使用Select和以匿名类型投影:
var result=key.GroupBy(v => v)
.Select(g => new {g.Key, Count=g.Count()})
.OrderByDescending(e => e.Count)
// .Distinct()// Don't need this call
.ToList();
Run Code Online (Sandbox Code Playgroud)
您还可以使用DTO投影查询:
public class CustomDTO
{
public string Key{get;set;} // Change the type in case you need to
public int Count{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
那么,您的查询将是:
var result=key.GroupBy(v => v)
.Select(g => new CustomDTO{Key=g.Key, Count=g.Count()})
.OrderByDescending(e => e.Count)
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |