通过LinQ查询字符出现次数的实例方法
在一个项目中使用到一个问卷调查,在用户完成之后,需要统计所有题目中哪一个选项被选中次数最多。
我的实现方法是将所有题目选中的选项拼接为一个字符串,如:ABCADAA
在分析被选中次数的时候最初是将字符串变为字符数组,然后进行遍历统计,代码如下:
public static int GetMaxDiaplayChar(string str, out string val)
{
int times = 0;
val = "";
char max = str[0];
Dictionary<char, int> counter = new Dictionary<char, int>();
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();
相关推荐
-
linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
如何从真正意义上做到延迟加载,即一次只从数据库中取我们需要的用到的那部分数据呢.通过研究,有了下面的方法: 首先,我们要新建一个静态类,用于存放多条件组合查询的各种组合,比如or,And这些等等.代码如下: 复制代码 代码如下: using System.Linq.Expressions; public static class PredicateExtensionses { public static Expression<Func<T, bool>> True<T>
-
linq to sql中,如何解决多条件查询问题,答案,用表达式树!
本篇适合于规模较小的数据量,对于大数据量,需要用另外的方式,见下一篇 首先,从网上搜,是必不可少的,大概了解了一下linq 多条件组合查询的方向,就开始动手了,首先,写一个委托的方法: 复制代码 代码如下: private bool GetCondition(FeedBack fb) { bool boolResult = true; int f_type = Int32.Parse(ddlFType.SelectedValue); int isClose = Int32.Parse(ddlIs
-
linq 查询 Linq 高级查询实例代码
复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text.RegularExpressions; using System.IO; using System.Text; using System.Data; namespa
-
LINQ 标准查询操作符
推荐大家下载本文的PDF进行阅读,可以方便的使用书签来阅读各个方法,而且代码中的关键字是高亮显示的.pdf版下载地址 http://www.jb51.net/books/24738.html 一.投影操作符 1. Select Select操作符对单个序列或集合中的值进行投影.下面的示例中使用select从序列中返回Employee表的所有列: 复制代码 代码如下: using (NorthwindDataContext db=new NorthwindDataContext()) { //查询
-
通过LinQ查询字符出现次数的实例方法
在一个项目中使用到一个问卷调查,在用户完成之后,需要统计所有题目中哪一个选项被选中次数最多.我的实现方法是将所有题目选中的选项拼接为一个字符串,如:ABCADAA在分析被选中次数的时候最初是将字符串变为字符数组,然后进行遍历统计,代码如下: 复制代码 代码如下: public static int GetMaxDiaplayChar(string str, out string val){ int times = 0; val = ""; char max = str
-
C#使用LINQ查询操作符实例代码(二)
目录 六.连表操作符 1.内连接 2.左外连接(DefaultIfEmpty) 3.组连接 七.集合操作 八.分区操作符 1.Take(): 2.TakeWhile(): 3.Skip(): 4.SkipWhile(): 九.聚合操作符 1.Count: 返回集合项数. 2.LongCount:返回一个 System.Int64,表示序列中的元素的总数量. 3.Sum: 序列中的所有数字的和. 4.Min: 返回集合中的最小值. 5.Max: 返回集合中的最大值. 6.Average: 返回集合
-
C#使用LINQ查询操作符实例代码(一)
目录 相关阅读 示例业务背景介绍 一.筛选操作符 结果: 1.索引器筛选 2.类型筛选OfType 二.投影操作符 1.Select 子句 结果: 相应的lambda表达式: 2.复合的From子句 三.let子句 四.排序操作符 使用ThenBy() 和 ThenByDescending() 方法继续排序进行二次排序 五.分组操作符 1.对嵌套的对象分组 2.多字段分组 3.分组后再每组里面仅取满足条件的行 相关阅读 C#使用LINQ查询操作符实例代码(一) C#使用LINQ查询操作符实例代码
-
JavaScript统计字符串中每个字符出现次数完整实例
本文实例讲述了JavaScript统计字符串中每个字符出现次数的方法.分享给大家供大家参考,具体如下: 这是一个面试题,要求随便给你一个字符串,让你求出字符串中每个字符出现的次数. 先来看看运行效果截图: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&
-
C#使用LINQ查询表达式的基本子句总结
LINQ查询表达式的基本语法很容易掌握,它使用C#常见的语言构造,从外观上看,和我们常用的SQL类似,并且查询表达式中的变量可以用匿名类型,所以在很多情况下,不需要指定变量类型就可以构建LINQ表达式. LINQ的数据源可以是数据库对象或是XML流等,也可以使实现了IEnumerable或者泛型IEnumberable<T>接口的集合对象. LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下: 关键字 说明 from 指定范围变量和数据源 where 根据bool表达式从
-
php获取字符串中各个字符出现次数的方法
本文实例讲述了php获取字符串中各个字符出现次数的方法.分享给大家供大家参考.具体实现方法如下: <?php //获取字符串是哪一个字符出现的字数最多 $str = "sdfhletlsflahlajgfd;lsje;r;wj;ralajfe149253573"; //方法一 $arr = str_split($str); //字符串分隔到数组中 $arr = array_count_values($arr); //用于统计数组中所有值出现的次数,返回一个数组 //键名为原数组的
-
python统计字符串中指定字符出现次数的方法
本文实例讲述了python统计字符串中指定字符出现次数的方法.分享给大家供大家参考.具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s.count(" ") x = "I like to program in Python" print x.count("i") PS:本站还提供了一个关于字符统计的工具,感兴
-
java统计字符串中重复字符出现次数的方法
本文实例讲述了java统计字符串中重复字符出现次数的方法.分享给大家供大家参考,具体如下: package com; import org.junit.Test; /** * 统计一个字符串的重复字符出现的次数 * * @author zdw * */ public class StringTest { @Test public void test() { String s = "fdfaacceeeeeeeeeeeegghikkkkkoooo"; count(s); } public
-
Java String方法获取字符出现次数及字符最大相同部分示例
本文实例讲述了Java String方法获取字符出现次数及字符最大相同部分.分享给大家供大家参考,具体如下: package demo; public class Test { public static void main(String[] args) { String str = "dasdalldsdslldsdszxll"; System.out.println("count="+get(str,"ll"));//打印ll出现的次数 St
-
C#中Linq查询基本操作使用实例
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 - let 子句 - 复合from子句 - 在某些情况下,源序列中的每个元素本身可能是序列(集合),也可能包含序列 - 用语访问单个数据库中的内部集合 - 使用多个from字句执行连接 - 可以包含多个可从独立数据源生成补充查询的from字句 复合(顾名思义就是有多from的字句)实例: 复制代码
随机推荐
- 关键字排名(Keyword Ranking)
- maven自动部署到远程tomcat服务器的方法
- 设计模式之原型模式_动力节点Java学院整理
- js实现tab选项卡函数代码
- 关于vue.extend和vue.component的区别浅析
- JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
- js中cookie的添加、取值、删除示例代码
- php实现按照权重随机排序数据的方法
- java拼接字符串时去掉最后一个多余逗号的方法
- IIS 7.5 配置伪静态
- 火车头 V3_Hi.Baidu.Com_2.0 百度空间发布模块 下载
- 浅谈synchronized方法对非synchronized方法的影响
- Android仿淘宝view滑动至屏幕顶部会一直停留在顶部的位置
- 老生常谈java中的数组初始化
- 毕业论文-如何预防计算机的网络病毒
- Android开发之Activity管理工具类完整示例
- php实现在线考试系统【附源码】
- 微信小程序如何使用云开发
- PHP基于timestamp和nonce实现的防止重放攻击方案分析
- JAVA基础面试题整理