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 擴展;