我有兩個清單。一個包含字符,另一個包含它們在字串中出現的次數。我通過在第一個串列中查找字符的索引并使用第二個串列中的索引來查找它在字串中出現的頻率來訪問串列。
我堅持的部分是按順序顯示它們,最常出現的字符按降序排列在頂部。我已經在對計數串列進行排序并在字串列上重復相同操作的意義上尋找解決方案,但無濟于事。
這是我到目前為止所擁有的:
List<int> counts = new List<int>();
List<char> chars = new List<char>();
char[] inputCharArr = input.ToCharArray();
foreach(char c in inputCharArr)
{
if (chars.Contains(c))
{
counts[chars.IndexOf(c)] ;
}
else
{
chars.Add(c);
counts.Add(0);
counts[chars.IndexOf(c)] ;
}
}
foreach(char c in chars)
{
Console.WriteLine(c " = " counts[chars.IndexOf(c)]);
}
uj5u.com熱心網友回復:
相反,串列操作,你可以嘗試使用LINQ的,以查詢的input字串:
using System.Linq;
...
var result = input
.GroupBy(c => c)
.Select(group => (letter : group.Key, count : group.Count()))
.OrderByDescending(pair => pair.count)
.ToArray(); // let's materialize the result
foreach (var p in result)
Console.WriteLine($"{p.letter} = {p.count}");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357894.html
上一篇:根據多個引數交換串列項
