Skip to content

Commit 3293fdf

Browse files
committed
[优化]1. 优化迭代扩展类的参数的判断
1 parent e4dd327 commit 3293fdf

1 file changed

Lines changed: 12 additions & 56 deletions

File tree

GameFrameX.Utility/Extensions/IEnumerableExtensions.cs

Lines changed: 12 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,9 @@ public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<T
4848
/// <returns>返回两个集合中具有相同键的交集元素</returns>
4949
public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TSource> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
5050
{
51-
if (first == null)
52-
{
53-
throw new ArgumentNullException(nameof(first));
54-
}
55-
56-
if (second == null)
57-
{
58-
throw new ArgumentNullException(nameof(second));
59-
}
60-
61-
if (keySelector == null)
62-
{
63-
throw new ArgumentNullException(nameof(keySelector));
64-
}
51+
ArgumentNullException.ThrowIfNull(first, nameof(first));
52+
ArgumentNullException.ThrowIfNull(second, nameof(second));
53+
ArgumentNullException.ThrowIfNull(keySelector, nameof(keySelector));
6554

6655
return IntersectByIterator(first, second, keySelector, comparer);
6756
}
@@ -149,15 +138,8 @@ public static IEnumerable<TFirst> ExceptBy<TFirst, TSecond>(this IEnumerable<TFi
149138
/// <returns>返回去重后的集合</returns>
150139
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
151140
{
152-
if (source == null)
153-
{
154-
throw new ArgumentNullException(nameof(source));
155-
}
156-
157-
if (keySelector == null)
158-
{
159-
throw new ArgumentNullException(nameof(keySelector));
160-
}
141+
ArgumentNullException.ThrowIfNull(source, nameof(source));
142+
ArgumentNullException.ThrowIfNull(keySelector, nameof(keySelector));
161143

162144
var set = new HashSet<TKey>();
163145
return source.Where(item => set.Add(keySelector(item)));
@@ -189,20 +171,9 @@ public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<T
189171
/// <returns>返回两个集合中具有相同键的交集元素</returns>
190172
public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
191173
{
192-
if (first == null)
193-
{
194-
throw new ArgumentNullException(nameof(first));
195-
}
196-
197-
if (second == null)
198-
{
199-
throw new ArgumentNullException(nameof(second));
200-
}
201-
202-
if (keySelector == null)
203-
{
204-
throw new ArgumentNullException(nameof(keySelector));
205-
}
174+
ArgumentNullException.ThrowIfNull(first, nameof(first));
175+
ArgumentNullException.ThrowIfNull(second, nameof(second));
176+
ArgumentNullException.ThrowIfNull(keySelector, nameof(keySelector));
206177

207178
return IntersectByIterator(first, second, keySelector, comparer);
208179
}
@@ -240,20 +211,9 @@ public static IEnumerable<TSource> ExceptBy<TSource, TKey>(this IEnumerable<TSou
240211
/// <exception cref="ArgumentNullException">如果 first、second 或 keySelector 为 null,则抛出此异常</exception>
241212
public static IEnumerable<TSource> ExceptBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
242213
{
243-
if (first == null)
244-
{
245-
throw new ArgumentNullException(nameof(first));
246-
}
247-
248-
if (second == null)
249-
{
250-
throw new ArgumentNullException(nameof(second));
251-
}
252-
253-
if (keySelector == null)
254-
{
255-
throw new ArgumentNullException(nameof(keySelector));
256-
}
214+
ArgumentNullException.ThrowIfNull(first, nameof(first));
215+
ArgumentNullException.ThrowIfNull(second, nameof(second));
216+
ArgumentNullException.ThrowIfNull(keySelector, nameof(keySelector));
257217

258218
return ExceptByIterator(first, second, keySelector, comparer);
259219
}
@@ -1135,11 +1095,7 @@ public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, Func<bool> con
11351095
/// <returns>操作后的集合。</returns>
11361096
public static IList<T> ChangeIndex<T>(this IList<T> list, T item, int index)
11371097
{
1138-
if (item is null)
1139-
{
1140-
throw new ArgumentNullException(nameof(item));
1141-
}
1142-
1098+
ArgumentNullException.ThrowIfNull(item, nameof(item));
11431099
ChangeIndexInternal(list, item, index);
11441100
return list;
11451101
}

0 commit comments

Comments
 (0)