0
A
回答
0
快速「N」簡單的方法是使用一個Dictionary
和循環:
using(StreamReader sr = new StreamReader("my file")) {
Dictionary<string, int> items = new Dictionary<string, int>();
while(sr.BaseStream.Position < sr.BaseStream.Length) {
string s = sr.ReadLine();
if(items.ContainsKey(s)) {
items[s]++;
} else {
items.Add(s, 1);
}
}
// You now have a dictionary of unique strings and their counts - you can sort it however you need.
}
0
如果文件不是太大,也就是說,如果它可以存放在內存中,您可以將其存儲在一本字典。
做「文字線」的字典 - >
讀取文件中的行同時「的,它已經看到的次數」。如果該行已經在字典中,則將字典值加1。如果該行是新行,請將其添加到字典中並將值設置爲1。
讀取完整個文件後,可以取出鍵/值。按值排序以查找最常出現的值並打印結果。
0
爲.NET框架3.0的代碼:
using System;
using System.IO;
using System.Collections.Generic;
public class Program
{
private static int Compare(KeyValuePair<string, int> kv1, KeyValuePair<string, int> kv2)
{
return kv2.Value == kv1.Value ? kv1.Key.CompareTo(kv2.Key) : kv2.Value - kv1.Value;
}
public static void Main()
{
Dictionary<string, int> histogram = new Dictionary<string, int>();
using (StreamReader reader = new StreamReader("Test.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (histogram.ContainsKey(line))
++histogram[line];
else
histogram.Add(line, 1);
}
}
List<KeyValuePair<string, int>> sortedHistogram = new List<KeyValuePair<string, int>>(histogram);
sortedHistogram.Sort(Compare);
foreach (KeyValuePair<string, int> kv in sortedHistogram)
Console.WriteLine("{0}\t{1}", kv.Value, kv.Key);
}
}
的Test.txt:
ddd
aaa
ccc
bbb
aaa
aaa
bbb
輸出:
3 aaa
2 bbb
1 ccc
1 ddd
相關問題
- 1. Tkinter文本未按順序顯示
- 2. 在matlab中顯示順序文本
- 3. 以相反順序顯示行的文本組件
- 4. 按順序顯示gridview行按照desc
- 5. C#按文本文件的順序排列文本框
- 6. WordPress的 - 在等級秩序展示類,不按字母順序
- 7. 在Python中按字母順序對文本文件的內容進行排序
- 8. IOS - 按順序加載本地文件
- 9. 合併SQL腳本文件(按順序)
- 10. 按正確順序顯示圖片框和文本鏈接
- 11. 按特定順序突出顯示特定文本
- 12. 顯示大多數發生在等級順序中#
- 13. 按順序運行批處理文件
- 14. 如何排序的文本文件按字母順序
- 15. 如何按等級對文件進行排序?
- 16. 按文件名順序打印文件
- 17. 按大小順序顯示目錄和文件c#
- 18. SQL計數行並按順序顯示
- 19. 從文本文件計算等級
- 20. 顯示從文本文件中的行批處理文件
- 21. 如何按字母順序排序文本文件?
- 22. 如何按字母順序排序文本文件?
- 23. 按順序顯示UIAlertViews
- 24. 從相反順序的文本文件中打印行
- 25. 非文本格式文件中換行符的順序如何?
- 26. 如何在C中按字母順序排序文件的行?
- 27. 使用jQuery以時間順序顯示畫布中的文本?
- 28. 如何按行排序文本文件?
- 29. Powershell腳本按順序運行多個批處理文件
- 30. 等級順序樹遍歷一棵普通的樹,按級別顯示樹級別
我不能用這個 - 框架4.0? – qwertyuywertwer 2011-12-19 00:49:02
是的 - 對不起,我修正了這個:)請現在測試它 – kol 2011-12-19 00:54:20
我不得不刪除LINQ部分,它出現在.NET 3.5中 – kol 2011-12-19 00:59:18