Sysnet.Common/Extensions.cs
(开头部分) 10KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sysnet.Common
{
/// <summary>
/// Contains general purpose extention methods.
/// </summary>
public static class Extensions
{
/// <summary>
/// Returns true if all items in the list are unique using
/// <see cref="EqualityComparer{T}.Default">EqualityComparer<T>.Default</see>.
/// </summary>
/// <exception cref="ArgumentNullException">if <param name="source"/> is null.</exception>
public static bool AllUnique<T>(this IList<T> source) where T : IEquatable<T>
{
Util.RequireNotNull(source, "source");
EqualityComparer<T> comparer = EqualityComparer<T>.Default;
return source.TrueForAllPairs((a, b) => !comparer.Equals(a, b));
}
/// <summary>
/// Returns true if <paramref name="compare"/> returns
/// true for every pair of items in <paramref name="source"/>.
/// </summary>
public static bool TrueForAllPairs<T>(this IList<T> source, Func<T, T, bool> compare)
{
Util.RequireNotNull(source, "source");
Util.RequireNotNull(compare, "compare");
for (int i = 0; i < source.Count; i++)
{
for (int j = i + 1; j < source.Count; j++)
{
if (!compare(source[i], source[j]))
{
return false;
}
}
}
return true;
}
/// <summary>
/// Returns true if <paramref name="compare"/> returns true of every
/// adjacent pair of items in the <paramref name="source"/>.
/// </summary>
/// <remarks>
/// <para>
/// If there are n items in the collection, n-1 comparisons are done.
/// </para>
/// <para>
后面还有 211 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
