src/DotNetCommon.Core/Extensions/EnumerableExtensions.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace DotNetCommon.Extensions
{
using DotNetCommon;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
/// <summary>
/// <see cref="IEnumerable{T}"/> 扩展类
/// </summary>
public static class EnumerableExtensions
{
#region ToConcurrentDictionary
/// <summary>
/// 将当前集合对象转成并发字典(属性名->属性值)
/// </summary>
public static ConcurrentDictionary<TKey, TValue> ToConcurrentDictionary<T, TKey, TValue>(this IEnumerable<T> collections, Func<T, TKey> keySelector, Func<T, TValue> valueSelector)
{
var dic = new ConcurrentDictionary<TKey, TValue>();
foreach (var collect in collections)
{
var key = keySelector(collect);
var value = valueSelector(collect);
dic.TryAdd(key, value);
}
return dic;
}
#endregion
/// <summary>
/// 简化 Skip((pageIndex-1) * pageSize).Take(pageSize)调用,页码从1开始
/// </summary>
public static IEnumerable<T> GetPage<T>(this IEnumerable<T> sequence, int pageIndex, int pageSize) =>
sequence.Skip((pageIndex - 1) * pageSize).Take(pageSize);
/// <summary>
/// 判断集合中是否存在元素
/// </summary>
public static bool IsNotNullOrEmpty<T>(this IEnumerable<T> sequence) =>
sequence != null && sequence.Any();
/// <summary>
/// 判断集合是否为空
/// </summary>
public static bool IsNullOrEmpty<T>(this IEnumerable<T> sequence) =>
sequence == null || (!sequence.Any());
/// <summary>
/// 将当前集合中的元素根据指定的分隔符(<paramref name="separator"/>)拼接成字符串
/// </summary>
public static string ToStringSeparated<T>(this IEnumerable<T> sequence, string separator)
{
Ensure.NotNull(sequence, nameof(sequence));
if (!sequence.Any()) { return string.Empty; }
return string.Join(separator, sequence);
}
后面还有 174 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
