c#高级写法
Linq的参考资料:https://www.cnblogs.com/liqingwen/p/5801249.html
1.判断str字符串中的逗号个数
string str = "1,2,3,4,5,6";
int count = str.Count(ch => ch == ',');
2.使用 where 子句来从数组中筛选那些具有特定长度的字符串
string[] words = { "the", "quick", "brown", "fox", "jumps" };
var query = from word in words
                   where word.Length ==
                   select word;
foreach (var word in query)
{
     Console.WriteLine(word);
}
3.查询一个List<Dictionary<string, object>>里面的一个值v是否在其里面的字典的值中
static void Main(string[] args)
{
List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>(); Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("", "a");
dic.Add("", "b"); Dictionary<string, object> dic2 = new Dictionary<string, object>();
dic2.Add("", "b"); listDic.Add(dic);
listDic.Add(dic2); //ToDictionary 转换成字典
var q = listDic.SelectMany(x => x.Where(y => y.Value == "b")).ToDictionary(a =>a.Key, a =>a.Value); foreach (var item in q)
{
Console.WriteLine(item.Key + "---" + item.Value);
} Console.ReadLine();
}
如果需要输出其对应字典在List中的下标,则
static void Main(string[] args)
{
List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("", "a");
dic.Add("", "b"); Dictionary<string, object> dic2 = new Dictionary<string, object>();
dic2.Add("", "b"); listDic.Add(dic);
listDic.Add(dic2); //要下标的话,那就只能产生新对象了。
var q = listDic.Select((x, i) => new
{
index = i,
dict = x.Where(y => y.Value.ToString() == "b")
}); foreach (var item in q)
{
Console.WriteLine("index:{0}", item.index);
foreach (var v in item.dict)
{
Console.WriteLine(v.Key + "---" + v.Value);
}
} Console.ReadLine();
}
4.字典合并
第一种
chanceAllDic = chanceSmallDic.Concat(chanceBigDic).ToDictionary(k => k.Key, v => v.Value);
第二种
buildDic = BattleJsonData.chanceSmallDic.Union(BattleJsonData.chanceBigDic).ToDictionary(k => k.Key, v => v.Value);
5.类型转换
public static List<Dictionary<string, object>> ListDicSort(List<object> listDic, string rank)
{
List<Dictionary<string, object>> myListDic = new List<Dictionary<string, object>>();
//普通写法
//for (int i = 0; i < listDic.Count; i++)
//{
// Dictionary<string, object> o = (Dictionary<string, object>)listDic[i];
// myListDic.Add(o);
//}
//Linq写法
myListDic = (from x in listDic select (Dictionary < string,object>)x).ToList(); return myListDic.OrderByDescending(a => a[rank]).ToList();
}
6.自动分组
//============================模拟数据==================================//
Dictionary<string, Dictionary<string, object>> dic_dic = new Dictionary<string, Dictionary<string, object>>();
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("name", "回复剂");
dic.Add("type", "药");
dic_dic.Add("", dic);
Dictionary<string, object> dic2 = new Dictionary<string, object>();
dic2.Add("name", "以太");
dic2.Add("type", "药");
dic_dic.Add("", dic2);
Dictionary<string, object> dic3 = new Dictionary<string, object>();
dic3.Add("name", "斧子");
dic3.Add("type", "武器");
dic_dic.Add("", dic3);
Dictionary<string, object> dic4 = new Dictionary<string, object>();
dic4.Add("name", "斧子");
dic4.Add("type", "药");
dic_dic.Add("", dic4);
//===================================================================// //按照type类型进行分类并且生成出字典嵌套字典
Dictionary<string, List<Dictionary<string, object>>> allDic = dic_dic.GroupBy(x => x.Value["type"])
.Select(g => new { key = g.Key, value = g.Select(s => s.Value) })
.ToDictionary(v => v.key.ToString(), v => v.value.ToList());
c#高级写法的更多相关文章
- css自适应宽度高级写法:一行多列~~~某些列的宽度是固定值
		aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxgAAACdCAIAAAC4iknFAAAgAElEQVR4nO2d3VsTV7uH51/wqhKotn 
- Cocos2dx-Android 之Makefile通用高级写法
		不废话,直接贴.节约时间.须要改进的地方请各位指出.共同学习. LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := c ... 
- 2017.10.13 Java中引用类型变量的创建及使用&循环高级写法
		今日内容介绍 1.引用类型变量的创建及使用 2.流程控制语句之选择语句 3.流程控制语句之循环语句 4.循环高级 ###01创建引用类型变量公式 * A: 创建引用类型变量公式 ... 
- nginx 二级目录高级写法
		nginx二级目录高级配置: location ~ .*\.(html)$ { expires 1m; error_page 404 = /test/index.html; access_log /d ... 
- vue指令实现拖动的高级写法
		不熟悉vue自定义指令看这里: https://cn.vuejs.org/v2/guide/custom-directive.html vue指令实现拖动方法很方便也挺简单,但是网上大部分的教程代码, ... 
- js高级写法
		名称 一般写法 优化 取整(不四舍五入) parseInt(a,10); //Before Math.floor(a); //Before a>>0; //Before ~~a; //Af ... 
- Android.mk高级写法
		转:http://blog.csdn.net/langresser_king/article/details/8275291 原本只是想记录一些常用的使用技巧,但是越写越得意(>_<),忍 ... 
- .net 高级写法总结
		1.处理HTTP非正常的请求参数: [1] 获取相应的流转为string [2] request 的只读属性设置为可编辑,类似form [3] 转换为json对象 [4] 重设只读属性 //判断请求类 ... 
- mysql sql语句高级写法
		将user表的内容,插入到team_member表INSERT INTO team_member (Nike,HeadImageUrl) SELECT Nike,HeadImageUrl FROM u ... 
随机推荐
- 操作文件方法简单总结(File,Directory,StreamReader,StreamWrite ) - Zery-zhang
			一 基本介绍 操作文档,文件夹,需要用到的类 1 Directory (静态类) : 用于创建.移动和删除等操作通过 目录 和子 目录 DirectoryInfo (非静态): 2 File ... 
- EF 配置实现建表与迁移
			通过EF 作为操作数据库的工具有一段时间了,也做了几个相对不大的项目,慢慢的也对EF的使用摸索出来了一些规则,虽然说不是技术难点,但是,我说的是但是,能够提高我们开发效率的棉花糖有时我们还是必须要吃的 ... 
- L - Ch’s gift HDU - 6162
			Ch’s gift Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ... 
- java中int转String 固定位数 不足补零
			转载自:http://ych0108.iteye.com/blog/2174134 String.format("%010d", 25); //25为int型 0代表前面要补的字符 ... 
- Win10 的操作中心如果不见了
			Win10 的操作中心如果不见了,可能是因为设置了不在任务栏显示操作中心,可以按照下面的设置来恢复. 1.单击开始菜单栏,打开设置: 2.选择个性化: 3.下图中,在左边选择"任务栏&quo ... 
- CHNetRequest网络请求
			Paste JSON as Code • quicktype 软件的使用 iOS开发:官方自带的JSON使用 JSON 数据解析 XML 数据解析 Plist 数据解析 NetRequest 网络数据 ... 
- NSArray	数组
			前言 数组只能存储 OC 对象,不能存储 C 语言中的基本数据类型,也不能存储 nil . Xcode 7 对系统中常用的一系列容器类型都增加了泛型支持(),有了泛型后就可以指定容器类中对象的类型了. ... 
- python中一些算法数列
			斐波那契数列: 1 def fn(n): 2 if n==1: 3 return 1 4 elif n==2: 5 return 1 6 else: 7 return fn(n-1)+fn(n-2) ... 
- [Python]打印a..z的字符
			import string print string.letters[0:26] 
- struts2学习笔记(七)—— struts2的文件上传
			一.前台页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ... 
