2015-10-29 146 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()));