首頁| 新聞| 娛樂| 游戲| 科普| 文學| 編程| 系統| 數據庫| 建站| 學院| 產品| 網管| 維修| 辦公| 熱點
分析上面的需求,我們需要通過以下幾個步驟來構建一個自定義過濾器:
[Flags] public enum DemoStringEnumType { /// <summary> /// 長度大于3 /// </summary> LongLen = 1, /// <summary> /// 包含1 /// </summary> HasOne = 2, /// <summary> /// 無效值 /// </summary> NN = 1024 }
public class StringFilterCore : ComplexFilterCore<string, DemoStringEnumType> { }
/// <summary> /// 是否是整數過濾器 /// 繼承IFilter /// </summary> public class IsNumberFilter : IFilter<string> { /// <summary> /// 判斷字符串是否為政策 /// </summary> /// <param name="item">待檢驗字符串</param> /// <returns>bool</returns> public bool DoFilter(string item) { int tem; return int.TryParse(item, out tem); } }
/// <summary> /// 識別器 /// 繼承IEnumTypeIdentifier接口 /// </summary> public class IdentifyDemoString : IEnumTypeIdentifier<string, DemoStringEnumType> { /// <summary> /// 識別對象特性 /// </summary> /// <param name="item">待識別字符串</param> /// <returns>DemoStringEnumType</returns> public DemoStringEnumType IdentifyItemTypeAsEnumType(string item) { //初始化結果 DemoStringEnumType result = DemoStringEnumType.NN; //識別長度是否大于3 if (item.Length > 3) { result |= DemoStringEnumType.LongLen; } //識別是否包含1 if (item.Contains("1")) { result |= DemoStringEnumType.HasOne; } return result; } }
static void Main(string[] args) { //初始化過濾器 StringFilterCore demoStrFilterCore = new StringFilterCore(); //初始化 HasOne 2 LongLen 1 demoStrFilterCore.SetMinGetCount(DemoStringEnumType.LongLen, 1); demoStrFilterCore.SetMinGetCount(DemoStringEnumType.HasOne, 2); //注冊類型識別器 識別特性 DemoStringEnumType demoStrFilterCore.RegistEnumTypeIdentifier(new IdentifyDemoString()); //添加過濾器 過濾掉不是整數的字符串 demoStrFilterCore.AddFilter(new DemoStringContentFilter()); //初始化數據源 var ls = new List<string> { "123", "246", "b", "15", "16", "a32" }; //執行過濾 var result = demoStrFilterCore.GetFilteredResult(ls); //打印結果 Console.WriteLine(string.Join(",", result.Keys)); Console.ReadKey(); }
收獲
抽象出通用的部分,讓開發人員只關注于業務是框架存在的一大必要因素。本文提出的過濾方案具有很高的擴展性,有興趣的同學可以下載demo研究下。
索泰發布一款GTX 1070 Mini迷
AMD新旗艦顯卡輕松干翻NVIDIA
索泰發布一款GTX 1070 Mini迷你版本:小機
芭蕾舞蹈表演,真實美到極致
下午茶時間,悠然自得的休憩
充斥這繁華奢靡氣息的城市迪拜風景圖片
從山間到田野再到大海美麗的自然風景圖片
肉食主義者的最愛美食烤肉圖片
夏日甜心草莓美食圖片
人逢知己千杯少,喝酒搞笑圖集
搞笑試卷,學生惡搞答題
新聞熱點
疑難解答
圖片精選
使用ASP建設私人搜索引擎
華為短消息中心的發展與應用
移動通信計費及客戶服務系統
移動客戶服務中心系統
網友關注