随笔分类 - 01-.NET Core框架 / 01-C#/.NET
摘要:介绍: JSON Patch是一种描述JSON文档更改的格式。当只更改了一部分时,可用于避免发送整个文档。当与HTTP PATCH方法结合使用时,它允许以符合标准的方式对HTTP API进行部分更新。 JSON Patch本身就是JSON文档。 为什么使用JsonPatch: JSON Patch的
阅读全文
摘要:DateTime time = DateTime.Now; time.ToString("格式化字符串格式",DateTimeFormatInfo.InvariantInfo) /字符串格式 * * d :08/17/2000 * D :Thursday, August 17, 2000 * f :
阅读全文
摘要:Hashtable、Dictionary:使用方式类似,都是存储键值对 Hashtable: Hashtable存储键值对,key、value都是object类型 Hashtable是线程安全的,线程安全实现方式:Hashtable类中有个类SyncHashtable ,封装Hashtable实例,
阅读全文
摘要:使用位类型枚举,可以组合枚举值,如果需要多个枚举值,可以用位枚举 枚举添加[Flags],标识位枚举 案例: [Flags] enum Styles { white=1, yellow=2, grean=4, blue=8, gray=16, orange=32, pink=64, red=128,
阅读全文
摘要:性能接近硬编码,推荐使用 /// <summary> /// 高性能对象映射 /// </summary> /// <typeparam name="TSource"></typeparam> /// <typeparam name="TTarget"></typeparam> public sta
阅读全文
摘要:简介 表达式树(Expression Tree):树形数据结构表示代码,以表示逻辑运算,以便可以在运行时访问逻辑运算的结构。 使用Expression<TDelegate>类型来表示表达式树 Expression对象储存了运算逻辑,它把运算逻辑保存成抽象语法树(AST),可以在运行时动态获取运算逻辑
阅读全文
摘要:介绍: 案例1:使用已有表达式树构建新的表达式树 Expression<Func<string, bool>> lambda0 = item => item.Length > 2; Expression<Func<string, bool>> lambda1 = item => item.Lengt
阅读全文
摘要:加载XML XElement.Load("c:/1.xml"); XElement.Parse("<Persons></Persons>"); 查找元素 var l = from n in root3.Elements() select new Person { ID = int.Parse(n.E
阅读全文
摘要:AsEnumerable() DataTable table = GetTable(); var q = from n in table.AsEnumerable() select new Person { ID=n.Field<int>("ID"), Name = n.Field<string>(
阅读全文
摘要:AsParallel() 并行化操作,大集合使用,提高速度 personList.AsParallel().Sum(p => p.CompanyID); SelectMany() 合并集合的集合成员 Dictionary<int, List<string>> dict = new Dictionar
阅读全文
摘要:这几个方法用于提高编码效率,减少无聊操作。 Enumerable.Empty() 生成一个空集合,用于初始化集合 IEnumerable<int> list = Enumerable.Empty<int>(); Enumerable.Range() 生成指定范围内的整数序列 Enumerable.R
阅读全文
摘要:ToLookup(): linq提供了一个ToDictionary()扩展方法,转换成Dictionary类型 personList.ToDictionary(p => p.CompanyID); key是CompanyID,Value是Person对象。如果CompanyID有重复值,会抛出异常。
阅读全文
摘要:let:在linq中定义变量,可以重复使用 var lowercaseStudentNames = from s in studentList let lowercaseStudentName = s.StudentName.ToLower() where lowercaseStudentName.
阅读全文
摘要:实体 public class Person { public string Name { get; set; } public int CompanyID { get; set; } } public class Company { public int ID { get; set; } } pu
阅读全文
摘要:implicit和explicit是一对转换操作符 Implicit关键字:用于声明隐式的用户定义类型转换运算符。它可以实现2个不同类的隐式转换 ,提高代码的可读性。 Explicit关键字:声明必须通过转换来调用的用户定义的类型转换运算符。不同于隐式转换。 1 public class Peopl
阅读全文
摘要:介绍 IEnumerable 提供了可以迭代的能力,而这种能力是通过内部的可迭代对象来实现了,这个对象就是IEnumerator 有了它们,我们不需要将内部集合暴露出去,外界只需要访问我的迭代器接口方法即可遍历数据。 foreach 在C#中,使用foreach语句来遍历集合。foreach语句是微
阅读全文
摘要:IConvertible接口:定义特定的方法,这些方法将实现引用或值类型的值转换为具有等效值的公共语言运行库类型。 C#中一个很好用的函数是Convert.ChangeType,它允许用户将某个类型转换成其他类型。但是如何你需要转换的对象不是继承自IConvertible接口,那么系统会抛出异常,转
阅读全文
摘要:C#中,自定义类型,支持比较和排序,需要实现IComparable接口。IComparable接口存在一个名为CompareTo()的方法,接收类型为object的参数表示被比较对象,返回整型值:1表示当前对象大于被比较对象,0表示两者相等,-1表示当前对象小于被比较对象。 IComparable接
阅读全文