私はコレクションにN個以上の要素があるかどうかチェックしたいと思います。LINQ Count()until、これはより効率的ですか?
これはこれよりも優れていますか?
Count() >= N
使用:
public static bool AtLeast<T>(this IEnumerable<T> enumerable, int max)
{
int count = 0;
return enumerable.Any(item => ++count >= max);
}
あるいは
public static bool Equals<T>(this IEnumerable<T> enumerable, int amount)
{
return enumerable.Take(amount).Count() == amount;
}
どのように私のベンチマークこれだろうか?
/// <summary>
/// Returns whether the enumerable has at least the provided amount of elements.
/// </summary>
public static bool HasAtLeast<T>(this IEnumerable<T> enumerable, int amount)
{
return enumerable.Take(amount).Count() == amount;
}
/// <summary>
/// Returns whether the enumerable has at most the provided amount of elements.
/// </summary>
public static bool HasAtMost<T>(this IEnumerable<T> enumerable, int amount)
{
return enumerable.Take(amount + 1).Count() <= amount;
}
を_HowベンチマークIでしこれ_ - あなたは、通常のタイミングでループ内でそれらを呼び出すために使用したいコードを入れて..? –
別のオプション: enumerable.Select((o、idx)=> idx).Any(i => i> = max); – KristoferA