我有一份清单 List<string> Rank
列表中的项目排名是
"FF"
"ABC"
"CC"
"FF"
"FF"
Run Code Online (Sandbox Code Playgroud)
我想要一个linq查询返回值,如果存在及其计数,假设如果我搜索"FF"然后它应该返回
value: ff
count: 3
Run Code Online (Sandbox Code Playgroud)
目前我正在使用此查询来查找匹配项
var match = Rank.FirstOrDefault(s => s.Contains("FF"));
Run Code Online (Sandbox Code Playgroud)
并且此查询将相同的值分组并为其分配计数.
var f = Rank.GroupBy(x => x).Select(g => new { Value = g.Key, Count = g.Count() });
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它返回给我完整列表,它看起来像where子句没有
var f = Rank.GroupBy(x => x).Select(g => new { Value = g.Key, Count = g.Count() }).Where(s => Rank.Contains("FF"));
Run Code Online (Sandbox Code Playgroud)
任何人都可以知道为什么第三个查询不起作用?
这几乎是正确的
var f = Rank.GroupBy(x => x)
.Select(g => new { Value = g.Key, Count = g.Count() })
.Where(s => Rank.Contains("FF"));
Run Code Online (Sandbox Code Playgroud)
只需更改结尾,以便查询新创建的匿名对象
var f = Rank.GroupBy(x => x)
.Select(g => new { Value = g.Key, Count = g.Count() })
.Where(s => s.Value == "FF");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15615 次 |
| 最近记录: |