1. 面向过程编程方法 ~ 面向对象编程方法 ~ 函数式编程javascript
软件设计思想: 函数-- 对象-- 组件- 服务2. 预处理html
预处理指令 PreProcessor Directive 指示编译器如何处理源代码。 java
条件编译指令:#if, #else, #elif, #endif 诊断指令:#warning, #error 行号指令:#line 区域指令:#region, #endregion #pragma warning disable/restore:关闭或从新开启警告信息
3. 数组 Array - 链表 List 等集合类的输出方法总结编程
Java数组
arr = lst.Where(过滤条件).ToArray(); Array.ForEach(arr, val => Console.Write(val+" ")); lst = arr.Where(过滤条件).ToList(); lst.ForEach(val => Console.Write(val+" "));
Javamarkdown
遍历 Collection 对象 Collection c = new 派生类();的方法:
[1].System.out.println(c);
[2].利用"foreach"循环:for(Object obj : c)
[3].利用对象的实例方法 forEach():c.forEach(Lambda表达式) 或 c.forEach(System.out::println);
[4].利用 Iterator 接口的 forEachRemaining() 方法:it.forEachRemaining(Lambda表达式);架构
4. 转义字符:\n 和 \r并发
5. 关于字典集新增键值对 分布式
(1)Dictionary
var dic = new Dictionary<string, Object>(); 模块化
// 若_key不存在,则新增键值对<_key, _value> // 若_key存在,则System.ArgumentException: Dictionary<TKey,TValue> 中已存在具备相同键的元素 dic.Add(_key, _value); // 若_key不存在,则新增键值对<_key, _value> // 若_key存在,则更新键_key对应的值为_value dic[_key] = _value;
(2)ConcurrentDictionary
var dic = new ConcurrentDictionary<string, Object>();
// 键值对成功添加,返回值则为true,不然为false // 即:若_key不存在,返回true;若_key存在,返回false dic.TryAdd(_key, _value); // 功能同Dictionary dic[_key] = _value;
附带参考字典集索引功能的源定义
public class Dictionary/ConcurrentDictionary<TKey, TValue> : XXX { // 摘要: 获取或设置与指定的键相关联的值 // 参数key: 要获取或设置的值的键 // 返回结果: 与指定的键相关联的值,若是找不到指定的键 // get操做会引起System.Collections.Generic.KeyNotFoundException // set操做会建立一个具备指定键的新元素 // 异常: // System.ArgumentNullException: key为null // System.Collections.Generic.KeyNotFoundException: 已检索该属性,而且集合中不存在key public TValue this[TKey key] { get; set; } }
6. 关于Distinct去重
核心是提供通用比较类,实现 IEqualityComparer<T> 接口:
public class CommonEqualityComparer<T, V> : IEqualityComparer<T> { private Func<T, V> keySelector; public CommonEqualityComparer(Func<T, V> keySelector) { this.keySelector = keySelector; } public bool Equals(T x, T y) { return EqualityComparer<V>.Default.Equals(keySelector(x), keySelector(y)); } public int GetHashCode(T obj) { return EqualityComparer<V>.Default.GetHashCode(keySelector(obj)); } }
而后再应用扩展方法,新增Distinct方法(此处注意理解扩展方法的原理)
public static IEnumerable<T> Distinct<T, V>(this IEnumerable<T> source, Func<T, V> keySelector) { return source.Distinct(new CommonEqualityComparer<T, V>(keySelector)); }
而后能够优雅地使用:
list = list.Distinct(p => p.Name).ToList();
具体参见:奇思妙用:Distinct 扩展;