C# 使用Dictionary、linq实现根据集合里面的字符串进行分组
//对下面集合里面的字符串按照“_”进行分组。
List<string> list = new List<string>() { "1_32", "2_10", "1_8", "1_25", "2_3", "3_5", "5_15", "3_16" };
使用字典:
#region //使用字典,键值对集合保存分组数据。
Dictionary<string, List<string>> groupDic = new Dictionary<string, List<string>>();
foreach (var item in list)
{
//取KEY值
string key = item.Split('_')[];
//根据key值判断集合中是否存在指定的键,不存在则创建一个。
if (!groupDic.ContainsKey(key))
{
groupDic.Add(key, new List<string>()); //初始化
}
groupDic[key].Add(item); //直接把当前元素添加到,key对应的List集合中。
} foreach (var item in groupDic)
{
var s = groupDic[item.Key];
for (int i = ; i < s.Count; i++)
{
Console.WriteLine("KEY:{0} Value:{1}", item.Key, s[i]);
}
}
#endregion
使用linq
#region //使用linq 分组
var groupList = from s in list
group s by s.Split('_')[] into g
select g; foreach (var item in groupList)
{
var s = groupDic[item.Key];
for (int i = ; i < s.Count; i++)
{
Console.WriteLine("KEY:{0} Value:{1}", item.Key, s[i]);
}
}
#endregion
使用lambda:
#region //使用lambda 分组
var groupList2 = list.GroupBy(s => s.Split('_')[]).Select(g => g); foreach (var item in groupList2)
{
var s = groupDic[item.Key];
for (int i = ; i < s.Count; i++)
{
Console.WriteLine("KEY:{0} Value:{1}", item.Key, s[i]);
}
}
#endregion

C# 使用Dictionary、linq实现根据集合里面的字符串进行分组的更多相关文章
- Linq to 泛型集合查询集合包括大写M和年龄小于等于18
#region Linq to 泛型集合查询集合包括大写M和年龄小于等于18 //List<Student> list = new List<Student&g ...
- DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)
一般数据处理使用DataTable的情况会很多,而我们很多时候会对得到的DataTable的数据进行筛选后绑定到Combobox.GridView.Repeat等控件中,现在分享一下两种DataTab ...
- Linq 查询 List集合
总是听到身边的同事说起Linq ,知道上学的时候学过,可是自从毕业之后就再也没用过,总觉得是很牛的技能 ,可是当自己真正学会用的时候才发现,我去,So easy .废话不多说直接上代码吧 var li ...
- 如何使用linq读取DataTable集合?AsQueryable() 和 AsEnumerable()区别?
一.准备工作 引入linq和data 相关的using命名空间 DataTable dt=new DataTable();//dt的来源可以是多个地方,比如:数据库,Excel等等.我这里使用Exce ...
- 使用IndexOf方法来判断“咳嗽”出现的次数及索引、使用Dictionary<key,value> 集合统计没个字符出现的次数
static void Main(string[] args) { #region string str = "患者:医生我咳嗽的很严重,大夫:你多大年纪了? 患者:我75岁 大夫:那二十岁 ...
- C# List集合转Json字符串示例代码
将list集合转换为Json字符串简单实现代码: public static string GetJosn(List<CalendarInfo> list) { string jsonSt ...
- c# Linq及Lamda表达式应用经验之 GroupBy 分组
示例1: GroupBy 分组在List<>泛型中的应用 原表: 按姓名Nam 分组后结果: 对DATATABLE 进行LAMDA查询时必须在项目的引用中添加 System.Data.Da ...
- (转)c# Linq及Lamda表达式应用经验之 GroupBy 分组
本文转载自:http://www.cnblogs.com/han1982/p/4138163.html 示例1: GroupBy 分组在List<>泛型中的应用 原表: 按姓名Nam 分组 ...
- Map 集合 和 String 字符串相互转换工具类
package com.skynet.rimp.common.utils.util; import java.util.Arrays; import java.util.HashMap; import ...
随机推荐
- oracle通过profile限制用户的恶意登录和使用期限
用户profile口令管理 1,可以把profile想象成一个数据对象(文件,规则) 案例: 允许某用户,最多尝试登录3次,如3次未登录成功,则锁定该用户,锁定后两天不能登录系统 设置语法(syste ...
- 朴素贝叶斯算法的python实现 -- 机器学习实战
import numpy as np import re #词表到向量的转换函数 def loadDataSet(): postingList = [['my', 'dog', 'has', 'fle ...
- TFIDF练习
直接上代码吧: """ 测试Demo """ import lightgbm as lgb import numpy as np from ...
- Android复习
第一章 1.Android系统架构:(四层) Linux内核层:为安卓设备的各种硬件提供底层的驱动. 系统运行库层:为Android系统提供主要的特性支持. 应用框架层:提供了构建应用程序可能用到的各 ...
- PHP面向对象详解:继承、封装与多态
首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体, ...
- 【mlflow】打包:npm run build + python setup.py sdist
mlflow是一个开源机器学习平台 最近需要使用一个它的最新版本,但是这个最新版本没有git包,无法通过pip install安装,需要打包安装. 打包完之后在项目的dist文件夹中有打包后的压缩包, ...
- linux 安装 mysql-5.6.26
linux安装mysql-5.6.26 查看工具:winscp 下载地址 http://mirrors.sohu.com/mysql/MySQL-5.6/ 文件: mysql-5.6.26-linux ...
- python之轮询、长轮询、websocket
轮询 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息. 1.后端代码 from flask import Flask,render_templat ...
- SVN Checkout 不包括源文件夹根目录
SVN Checkout 不包括源文件夹根目录,比如我要checkout trunk/ 下面的所有文件,但是不包括trunk 文件夹 我们可以在svn文件夹后面打个空格,在加个“.”就行了 eg: ...
- oracle 查询按月份分组
如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- 14- ...