`
三月沙
  • 浏览: 620036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用C#sortedList类(可自动排序类)统计文件中单词频率

    博客分类:
  • C#
阅读更多

/**
 * sortedList类可以对存进去的对象进行默认的排序,即其内的元素是按顺序排放的。
 * 该测试程序,对文件中的单词进行简单的统计然后排序输出。
 */
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO;

namespace WorldCount
{
    class Program
    {
        static void Main( string[] args )
        {
           
                try
                {
                    StreamReader sr = new StreamReader ( "word.txt" ); //创建输入流
                    SortedList sortedlist = new SortedList ( );//创建sortelist对象,该对象可以自动排序
                    char[] delimiter = new char[] { '~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', ',', ' ', '>', '<', '?', '/', '\\' };
                    string line;
                    int count = 0;
                    line = sr.ReadLine ( );  
                    while ( line != null )
                    {
                        count++;
                        string[] temp = line.Split ( delimiter );
                        for ( int i = 0; i < temp.Length; i++ )
                        {
                            if ( !sortedlist.ContainsKey ( temp[i] ) )   //检测该list中是否有该字符
                            {
                                sortedlist.Add ( temp[i], 1 ); //如果数组中没有该单词加进去
                            }
                            else
                            {
                                int index = sortedlist.IndexOfKey ( temp[i] ); //取得指定键的索引  //如果有则更改单词的次数
                                
                                int value = (int)sortedlist.GetByIndex ( index );//取得指定索引的值
                                value++;
                                sortedlist.SetByIndex ( index, value );
                            }
                        }
                        line = sr.ReadLine ( );
                    }
                    sr.Close ( );
                    Console.Write(count);
                    StreamWriter sw = new StreamWriter ( "result.txt" );  //打开输出流
                    for ( int i = 0; i < sortedlist.Count; i++ )
                    {
                        string temp = (string)sortedlist.GetKey ( i );
                        if ( temp == null || temp.Equals ( "" ) )
                            continue;
                        else
                        {
                            sw.WriteLine ( "{0} {1} ", sortedlist.GetKey ( i ), sortedlist.GetByIndex ( i ) );
                        }
                    }
                    sw.Close ( );
                }
                catch ( Exception e )
                {
                    Console.WriteLine ( "Can not read!" );
                    Console.WriteLine ( e.Message );
                }
                Console.ReadKey ( );
        }
    }
}
 
0
0
分享到:
评论

相关推荐

    C#中List和SortedList的简介

    * ContainsValue(object value):判断某个值是否在该SortedList中 * IndexOfKey(object key):获取某个键的索引 * IndexOfValue(object value):获取某个值的索引 List类和SortedList类都是C#语言中非常重要的集合...

    C#对list列表进行随机排序的方法

    在C#编程中,列表(List)是一种常用的集合类,用于存储一组同类型的元素。当需要对列表中的元素进行随机排序时,可以采用多种方法。这里我们重点介绍一种基于`Random`类的方法,如标题和描述中所述。这种方法通过创建...

    字典 自动排序 c#

    总结来说,要在C#中实现字典自动排序,可以通过转换为`List`并使用Linq的排序方法,或者使用内置的`SortedList`和`SortedDictionary`类。同时,根据用户输入实时更新排序结果,需要监听输入事件并进行相应的处理。在...

    Dictionary, SortedDictionary, SortedList 横向评测

    Dictionary, SortedDictionary, SortedList 是 .NET Framework 中三个支持泛型和关键字查找的类,它们都属于 System.Collections.Generic 命名空间。这些类在名字和功能上非常相似,以至于实际运用的时候我们会经常...

    用sortedlist,vsto合并两份excel

    3. 使用VSTO打开第一个Excel文件,遍历每个工作表,读取每一行的数据,将其添加到SortedList中。由于SortedList自动排序,可以确保数据按照预期的顺序存储。 4. 接着,打开第二个Excel文件,同样遍历每个工作表,但...

    SortedList类

    ### SortedList类详解 #### 一、概述 `SortedList` 类是一种集合类型,它能够存储键/值对,并按照键进行排序。这种数据结构结合了`Hashtable`和`Array`的特点,使得开发者可以根据键或者索引来访问元素,提供了更...

    c#的sortedlist使用方法

    SortedList最合适对一列健/值对 进行排序,在排序时,是对键进行排序,SortedList 是 Hashtable 和 Array 的混合。当使用 Item 索引器属性按照元素的键访问元素时,其行为类似于 Hashtable。当使用 GetByIndex 或 ...

    c# 中的arrlist queue HashtableTest SortedList stack 集合

    由于`SortedList`自动保持排序,因此在遍历时,我们能够按照学生ID的自然顺序打印出所有的学生信息。 ### Stack 虽然没有在提供的代码示例中出现,`Stack`是一种后进先出(LIFO)的数据结构,适用于需要跟踪历史...

    C#中构建字典: DictionaryBase和SortedList类

    使用DictionaryBase开发电话本 phonebook 应具有的功能 Add添加联系人 Remove删除联系人 Count获取联系人数 Clear清空联系人 Item获取联系人信息 索引器 保存至硬盘/ 从硬盘读取 思考:如何存储多个信息

    将文本文件读入c#数组 并排序

    在C#编程中,将文本文件的内容读取到数组中并进行排序是一项常见的任务,尤其在处理大量数据或日志文件时。以下是如何实现这个过程的详细步骤。 首先,我们需要打开文本文件并逐行读取内容。在C#中,我们可以使用`...

    简易单词本 英文单词去重 排序

    在这个过程中,我们可以使用一些优化技巧,例如使用`with`语句自动关闭文件,或者利用列表推导式简化代码。此外,如果单词数量巨大,可以考虑使用分块读取和排序来节省内存。 通过这样的处理,我们不仅得到了一个无...

    统计一篇文章中每个单词的个数

    这可能涉及到排序操作,比如Python的`sorted()`函数配合`lambda`表达式,或者使用`collections.Counter`类,它自动进行计数并提供`most_common()`方法用于排序输出。 在用户界面设计上,"Statistical words.exe...

    java 使用Collections类对List的排序操作

    本文将深入探讨如何使用 `Collections` 类对 List 进行排序操作。 首先,让我们了解 `List` 排序的基本概念。在 Java 中,`List` 是接口,它继承了 `Collection` 接口,并添加了顺序相关的操作。常见的 `List` 实现...

    shixiyi.rar_xiyi词语_单词_单词频率算法

    这个“shixiyi.rar_xiyi词语_单词_单词频率算法”似乎是一个关于计算和排序文本中单词出现频率的程序或工具。让我们深入探讨一下这个主题。 单词频率算法是一种用于分析文本数据的技术,其主要目的是确定文本中每个...

    c# 试题

    在`WordParse`类中,使用`SortedList`来存储单词及其出现次数。 - 示例中的`sl = new SortedList();`创建了一个新的`SortedList`实例。 - **添加元素到`SortedList`**: 在`AddAndParse`方法中,涉及到向`SortedList...

    C#必须掌握的系统类

    在C#编程中,了解和熟练使用系统类是至关重要的,因为它们构成了.NET Framework的核心功能。下面我们将深入探讨一些必须掌握的关键系统类及其用途。 首先,`Object`类是所有C#类的基类,它定义了所有对象共享的基本...

    北航机试15年第三题,读文件并按字典序统计文件中出现的单词

    ### 北航机试15年第三题:读文件并按字典序统计文件中出现的单词 #### 题目解析与知识点梳理 **题目背景:** 此题源自北京航空航天大学计算机专业的一次上机考试,考查的是学生对文件处理、字符串操作以及排序算法...

    C# 各种通用类集合

    9. **SortedDictionary, TValue&gt;** 和 **SortedList, TValue&gt;**: 这两个集合类都是有序的键值对集合,不同之处在于SortedDictionary使用自定义比较器,而SortedList则根据键的自然顺序排序。 在ASP.NET Web API开发...

    牛津英汉词典 单词排序或搜索编程可用

    排序单词通常基于字母顺序,这在编程中可以通过使用内置的`sorted()`函数实现,指定排序的关键字为单词。如果需要按照单词的频率或其他属性排序,可能需要先对数据进行预处理。 搜索则更为灵活,可以使用线性搜索、...

Global site tag (gtag.js) - Google Analytics