如何使用 LINQ 查询? [关闭]

Posted

技术标签:

【中文标题】如何使用 LINQ 查询? [关闭]【英文标题】:how to use LINQ query? [closed] 【发布时间】:2015-10-29 16:38:29 【问题描述】:

我有一个输入字符串,

string str1 = "aabcccabdfa";

我想计算每个字符的出现次数并将其放在该字符旁边。所以我需要将结果输出为"a4b2c3d1f1"。如何使用 LINQ 实现这一目标?

我尝试使用“字典”来执行此操作,但无法执行此操作。

谢谢,

【问题讨论】:

输入和输出之间会发生什么? 这可能是功课。您的教授很有可能会使用 Google 找到将作业复制到问答论坛并逐字提交答案的学生。此外,如果您不至少具体展示您尝试过的内容并解释您遇到的问题,您将无法学习。 希望 OP 能够理解答案,尤其是在必须维护自己的代码时……以备将来更新…… 有什么问题,为什么这么多反对意见 @M.kazemAkhgary 没有任何努力。 【参考方案1】:

这样做:

string str1 = "aabcccabdfa";
string.Concat(str1.GroupBy(c => c).OrderBy(c => c.Key).Select(c => c.Key.ToString() + c.Count()));

【讨论】:

.ToCharArray() 是多余且不必要的。 @tnw 然后 OPs 老师将加入 SO! :) 你说得对,我已经更新了代码。【参考方案2】:
string str1 = "aabcccabdfa";
var result=string.Concat(str1.GroupBy(a=>a)
  .Select(a=>a.Key.ToString()+a.Count().ToString()));

【讨论】:

【参考方案3】:
string str1 = "aabcccabdfa";
var output = "";
str1.ToArray().Distinct().ToList().ForEach(x => output += x + (str1.Count(f => f == x).ToString()));

【讨论】:

以上是关于如何使用 LINQ 查询? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何重构C#linq代码? [关闭]

如何使用 LINQ 从列表中选择各种长度的部分 [关闭]

如何使用一个 linq 查询获得总数量?

如何使用 Linq 查询查找分数范围(没有最高分数)

如何在 LINQ 中使用左外连接进行 SQL 查询?

为啥使用 EF / Linq to sql 创建性能不佳的查询如此容易[关闭]