<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        .NET實用擴展方法詳解

        來源:懂視網 責編:小采 時間:2020-11-27 22:35:17
        文檔

        .NET實用擴展方法詳解

        .NET實用擴展方法詳解:持續更新的.NET實用擴展方法,具體內容如下 1. 字符串轉換為可空數值類型(int, long, float...類似) /// <summary> /// 將字符串轉換成32位整數,轉換失敗返回null /// </summary> /// <param name=str
        推薦度:
        導讀.NET實用擴展方法詳解:持續更新的.NET實用擴展方法,具體內容如下 1. 字符串轉換為可空數值類型(int, long, float...類似) /// <summary> /// 將字符串轉換成32位整數,轉換失敗返回null /// </summary> /// <param name=str

        持續更新的.NET實用擴展方法,具體內容如下

        1. 字符串轉換為可空數值類型(int, long, float...類似)

         /// <summary>
         /// 將字符串轉換成32位整數,轉換失敗返回null
         /// </summary>
         /// <param name="str">轉換的字符串</param>
         /// <returns>轉換之后的整數,或null</returns>
         public static int? TryParseToInt32(this string str)
         {
         if (string.IsNullOrWhiteSpace(str))
         return null;
         var result = 0;
         if (int.TryParse(str, out result))
         return result;
         else
         return null;
         }
        

        2. 去除子字符串

         /// <summary>
         /// 去除子字符串
         /// </summary>
         /// <param name="str">原字符串</param>
         /// <param name="substring">要去除的字符串</param>
         /// <returns>去除子字符串之后的結果</returns>
         public static string DeSubstring(this string str, string substring)
         {
         if (string.IsNullOrEmpty(str) || string.IsNullOrEmpty(substring) || !str.Contains(substring))
         {
         return str;
         }
        
         return Regex.Replace(str, Regex.Escape(substring), string.Empty);
         }
        
         /// <summary>
         /// 去除子字符串
         /// </summary>
         /// <param name="str">原字符串</param>
         /// <param name="substrings">要去除的子字符串</param>
         /// <returns>去除子字符串之后的結果</returns>
         public static string DeSubstring(this string str, params string[] substrings)
         {
         if (string.IsNullOrEmpty(str))
         return str;
         if (substrings == null)
         return str;
         var newStr = str;
         foreach (var item in substrings)
         {
         newStr = newStr.DeSubstring(item);
         }
         return newStr;
         }
        
        

        3. 獲取子序列

         /// <summary>
         /// 獲取子序列
         /// </summary>
         /// <typeparam name="T">序列中元素類型</typeparam>
         /// <param name="source">源數據</param>
         /// <param name="startIndex">開始索引(返回時包括)</param>
         /// <param name="endIndex">結束索引(返回時包括)</param>
         /// <returns>子序列</returns>
         public static IEnumerable<T> SubEnumerable<T>(this IEnumerable<T> source, int startIndex, int endIndex)
         {
         if (source == null)
         yield return default(T);
         var length = source.Count();
         if (startIndex < 0 || endIndex < startIndex || startIndex >= length || endIndex >= length)
         throw new ArgumentOutOfRangeException();
        
         var index = -1;
         foreach (var item in source)
         {
         index++;
         if (index < startIndex)
         continue;
         if (index > endIndex)
         yield break;
         yield return item;
         }
         }
        
        

        4. 通過指定鍵對序列去重, 不必實現IEqualityComparer接口

         /// <summary>
         /// 通過對指定的值進行比較返回序列中的非重復元素。
         /// </summary>
         /// <typeparam name="T">序列中元素類型</typeparam>
         /// <typeparam name="TResult">指定的比較屬性類型</typeparam>
         /// <param name="source">源數據</param>
         /// <param name="selector">應用于每個元素的轉換函數</param>
         /// <returns>一個包含源序列中的按指定屬性非重復元素</returns>
         public static IEnumerable<T> Distinct<T, TResult>(this IEnumerable<T> source, Func<T, TResult> selector)
         {
         if (source == null)
         throw new ArgumentNullException(nameof(source));
         if (selector == null)
         throw new ArgumentNullException(nameof(selector));
         var set = new HashSet<TResult>();
         foreach (var item in source)
         {
         var result = selector(item);
         if (set.Add(result))
         {
         yield return item;
         }
         }
         }
        

        5. 獲取序列中重復的元素序列, 原理和去重類似

         /// <summary>
         /// 通過對指定的值進行比較返回序列中重復的元素
         /// </summary>
         /// <typeparam name="T">序列中的數據類型</typeparam>
         /// <typeparam name="TResult">指定的比較屬性類型</typeparam>
         /// <param name="source">源數據</param>
         /// <param name="selector">應用于每個元素的轉換函數</param>
         /// <returns>一個包含源序列中的按指定元素的重復元素</returns>
         public static IEnumerable<T> Identical<T>(this IEnumerable<T> source)
         {
         if (source == null)
         throw new ArgumentNullException(nameof(source));
         var setT = new HashSet<T>();
         foreach (var item in source)
         {
         if (!setT.Add(item))
         {
         yield return item;
         }
         }
         }
        
         /// <summary>
         /// 通過對指定的值進行比較返回序列中重復的元素
         /// </summary>
         /// <typeparam name="T">序列中的數據類型</typeparam>
         /// <typeparam name="TResult">指定的比較屬性類型</typeparam>
         /// <param name="source">源數據</param>
         /// <param name="selector">應用于每個元素的轉換函數</param>
         /// <returns>一個包含源序列中的按指定元素的重復元素</returns>
         public static IEnumerable<T> Identical<T, TResult>(this IEnumerable<T> source, Func<T, TResult> selector)
         {
         if (source == null)
         throw new ArgumentNullException(nameof(source));
         if (selector == null)
         throw new ArgumentNullException(nameof(selector));
         var setTResult = new HashSet<TResult>();
         foreach (var item in source)
         {
         var result = selector(item);
         if (!setTResult.Add(result))
         {
         yield return item;
         }
         }
         }
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        .NET實用擴展方法詳解

        .NET實用擴展方法詳解:持續更新的.NET實用擴展方法,具體內容如下 1. 字符串轉換為可空數值類型(int, long, float...類似) /// <summary> /// 將字符串轉換成32位整數,轉換失敗返回null /// </summary> /// <param name=str
        推薦度:
        標簽: 常用 方法 net
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一二三四在线观看免费高清中文在线观看 | 亚洲美女一区二区三区| a级毛片免费高清毛片视频| 波多野结衣一区二区免费视频| 亚洲乱亚洲乱妇24p| 成人免费看片又大又黄| 亚洲欧美国产日韩av野草社区| 毛片免费全部免费观看| 亚洲人成网站18禁止| 国产jizzjizz视频免费看| 免费人成大片在线观看播放电影 | 国产亚洲一区二区精品| 美女视频黄的免费视频网页| 亚洲国产精品自在在线观看| 中文字幕成人免费视频| 亚洲欧美日韩中文高清www777| 免费一级毛片一级毛片aa| 国产精品成人免费观看| 亚洲av日韩综合一区在线观看| 蜜臀AV免费一区二区三区| 中文字幕亚洲精品无码| 亚洲 另类 无码 在线| 99久久免费国产精品热| 亚洲成年人电影网站| 日韩在线看片免费人成视频播放| 国产AV日韩A∨亚洲AV电影| 亚洲午夜久久久久久久久久| 亚洲黄色免费在线观看| 亚洲妇女无套内射精| 国产亚洲综合一区柠檬导航| 最新欧洲大片免费在线| 四虎永久在线精品免费一区二区| 亚洲精品美女久久777777| 91频在线观看免费大全| yellow免费网站| 亚洲国产成人九九综合| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 激情内射亚洲一区二区三区爱妻| 免费女人18毛片a级毛片视频| 182tv免费视频在线观看| 亚洲码欧美码一区二区三区|