2015-10-29 98 views
-9

我有一个输入字符串,如何使用LINQ查询?

string str1 = "aabcccabdfa"; 

我要统计每个字符的发生,并把它旁边的性格。所以我需要输出结果为"a4b2c3d1f1"。我怎样才能实现这一点与LINQ?

我试着用“字典”来做到这一点,但无法做到这一点。

感谢,

+1

的输入和输出之间会发生什么? – markpsmith

+1

这可能是家庭作业。您的教授很可能会使用Google来寻找将作业复制到问答论坛并将他们逐字逐句回答的答案。另外,如果你至少没有显示*特别是*你尝试过的东西并解释你卡在哪里,你就不会学习。 –

+0

希望OP可以理解答案,尤其是当涉及到维护自己的代码..为未来的更新.. – MethodMan

回答

3

做这样的:

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

.ToCharArray()是多余的和不必要的。 –

+0

@tnw然后OP的老师会加入! :) –

+0

你说得对,我已经更新了代码。 – Kvam

-1
string str1 = "aabcccabdfa"; 
var output = ""; 
str1.ToArray().Distinct().ToList().ForEach(x => output += x + (str1.Count(f => f == x).ToString())); 
0
string str1 = "aabcccabdfa"; 
var result=string.Concat(str1.GroupBy(a=>a) 
    .Select(a=>a.Key.ToString()+a.Count().ToString()));