国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET實用擴展方法詳解

2024-07-10 12:48:56
字體:
來源:轉載
供稿:網友

持續更新的.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;      }    }  }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓝山县| 吐鲁番市| 徐汇区| 鹿邑县| 太仓市| 德昌县| 读书| 运城市| 河曲县| 唐海县| 莲花县| 射阳县| 略阳县| 宁南县| 临海市| 长泰县| 冀州市| 威信县| 资兴市| 太原市| 湘乡市| 农安县| 来凤县| 绥德县| 陆良县| 城口县| 昭通市| 金寨县| 景谷| 汽车| 南部县| 常宁市| 西乌珠穆沁旗| 辽宁省| 南部县| 常熟市| 灵山县| 社旗县| 高要市| 仲巴县| 固原市|