当前位置:  编程技术>.net/c#/asp.net

通过LinQ查询字符出现次数的实例方法

    来源: 互联网  发布时间:2014-10-24

    本文导语:  在一个项目中使用到一个问卷调查,在用户完成之后,需要统计所有题目中哪一个选项被选中次数最多。我的实现方法是将所有题目选中的选项拼接为一个字符串,如:ABCADAA在分析被选中次数的时候最初是将字符串变为字符数...

在一个项目中使用到一个问卷调查,在用户完成之后,需要统计所有题目中哪一个选项被选中次数最多。
我的实现方法是将所有题目选中的选项拼接为一个字符串,如:ABCADAA
在分析被选中次数的时候最初是将字符串变为字符数组,然后进行遍历统计,代码如下:

代码如下:

public static int GetMaxDiaplayChar(string str, out string val)
{
    int times = 0;
    val = "";
    char max = str[0];
    Dictionary counter = new Dictionary();
    foreach (char c in str)
    {
        if (!char.IsLetter(c)) continue;
        if (counter.ContainsKey(c)) counter[c]++;
        else counter.Add(c, 1);
        if (counter[max] < counter[c]) max = c;
    }
    times = counter[max];
    val = max.ToString();
    return times;
}

这样进行统计效率一般,且感觉有些太复杂了,于是在后期使用LinQ来进行改进,实现方法如下:

代码如下:

string content = "ABCADAA";
var ch = content.ToCharArray();
var query = ch.GroupBy(s => s).OrderByDescending(s => s.Count()).ToList();
for (int ri = 0; ri < query.Count(); ri++)
{
    MessageBox.Show(query[ri].Key + " = " + query[ri].Count());
}

这样就可以比较简单的统计具体出现次数,如果需要对出现最少或者最多的字符进行统计,只需要对OrderBy和ToList进行修改就可以,比较灵活。

代码如下:

var queryMax = ch.GroupBy(s => s).OrderByDescending(s => s.Count()).SingleOrDefault();
var queryMin = ch.GroupBy(s => s).OrderBy(s => s.Count()).SingleOrDefault();

    
 
 

您可能感兴趣的文章:

  • 如何修改通过locale命令查看到的系统字符集
  • mini2440如何通过串口发送字符串,急求
  • c语言中如何通过日期时间字符串得到时间戳?
  • sun机器中如何通过awk命令截取字符串??
  • Jquery通过JSON字符串创建JSON对象
  • 如何通过.sh文件 把指定字符串写入到指定文件
  • php通过数组实现多条件查询实现方法(字符串分割)
  • 请问如何通过javascript直接将一个字符串送到windows剪贴板上?
  • SqlServer下通过XML拆分字符串的方法
  • c#通过unicode编码判断字符是否为中文示例分享
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • Jbuilder第一次编译说缺包,引入通过!然后把原来引入的注释,又通过!上帝,救我! iis7站长之家
  • 如何在java中获取dll中的字符串或者字符数组(通过jni)?
  • 为什么通过jTextField输入的汉字变成了一个字符?我用jTextField.getText().length()返回的结果就是这样!6个汉字的长度只有6!!!
  • OpenOffice 2.2.1不显示少数的中文字符(有截图说明),能否通过“改字体”解决
  • php通过字符串调用函数示例
  • 通过dom4j解析xml字符串(示例代码)
  • .NET下 c#通过COM组件操作并导出Excel实例代码
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • C++通过TerminateProess结束进程实例
  • 怎样判断一个对象是通过什么类实例化出来的?
  • Java通过接口实现匿名类的实例代码
  • C语言创建链表错误之通过指针参数申请动态内存实例分析
  • php实例分享之通过递归实现删除目录下的所有文件详解
  • Android下通过httpClient发送GET和POST请求的实例代码
  • Android通过手势实现的缩放处理实例代码
  • 通过实例深入理解linux shell数组
  • C#通过XML节点属性/属性值读取写入XML操作代码实例
  • Android 通过当前经纬度获得城市的实例代码
  • 想java通过socket和c++通讯,哪位有这方面资料或实例?
  • 小弟写了一个很简单的动态库实例函数用来学习,但编译通过之后执行可执行文件报错。跪请高手帮忙!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • applet可以不通过数字签名,通过设置IE直接在本地访问本地文件吗
  • php通过socket_bind()设置IP地址代码示例
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 通过javascript库JQuery实现页面跳转功能代码
  • 紧急求救!能通过jdbc怎样连接sqlsever 然后通过 for xml 关键字得到xml流吗?
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 我想我的网站屏蔽掉通过某些网站过来的访问,我想通过htaccess 文件来做,请大家帮帮我。
  • linux下通过crond实现自动执行程序
  • 如何通过INTERNET访问通过共项一条线路上网的局域网中的机器???
  • 通过docker commit命令保存对docker容器的修改
  • 为什么g++编译通过了,而gcc却编译通过不了???
  • 通过docker run命令运行新的docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 通过docker ps命令检查运行中的docker镜像
  • Jbuilder第一次编译说缺包,引入通过!然后把原来引入的注释,又通过!上帝,救我!
  • Session id实现通过Cookie来传输方法及代码参考
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • 通过docker search命令搜索可用docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • Python3通过request.urlopen实现Web网页图片下载
  • 工作站Redhat Linux7.2如何通过NT4.0 proxy代理服务器上网,我不能通过其验证!请高手指点思路和方法!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3