• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: 国产精品无码无卡无需播放器| 久久99热这里只有精品国产| 亚洲国产精品不卡在线电影| 亚洲综合精品香蕉久久网| 国产成人精品日本亚洲专区| 久久99精品国产麻豆| 网友偷拍日韩精品| 国产午夜精品久久久久九九| 国产精品黄网站| 精品福利一区二区三区免费视频| 亚洲精品无码专区久久同性男| 国产一区麻豆剧传媒果冻精品| 欧美精品人爱c欧美精品| 国产三级久久久精品麻豆三级 | 久久精品亚洲欧美日韩久久| 精品九九久久国内精品| 国产精品国产三级国产AV主播| 伊人久久精品无码二区麻豆| 亚洲av无码国产精品色在线看不卡 | 国产精品女人呻吟在线观看| 91精品在线看| 久久精品国产亚洲av日韩| 亚洲线精品一区二区三区| 亚洲国产精品人人做人人爱| 精品人妻少妇一区二区三区不卡| 99久久精品国产一区二区| 亚洲综合一区二区国产精品| 欧美韩国精品另类综合| 国产精品一二二区| 国产精品黄网站| 亚洲国产精品国自产拍电影| 欧美777精品久久久久网| 88久久精品无码一区二区毛片| 91精品视频在线| 国产精品青草久久久久福利99| 国产成人精品高清不卡在线| 国产精品成人99久久久久| 国产精品偷窥熟女精品视频| 国产在线国偷精品免费看| 欧美国产成人精品一区二区三区| 无码精品人妻一区|