|
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="CollectionHelper.cs" company="Catel development team">
// Copyright (c) 2008 - 2011 Catel development team. All rights reserved.
// </copyright>
// <summary>
// Collection helper class.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
using System.Collections;
namespace Catel.Collections
{
/// <summary>
/// Collection helper class.
/// </summary>
public static class CollectionHelper
{
/// <summary>
/// Checks whether a collection is the same as another collection.
/// </summary>
/// <param name="listA">The list A.</param>
/// <param name="listB">The list B.</param>
/// <returns>
/// True if the two collections contain all the same items in the same order.
/// </returns>
public static bool IsEqualTo(IEnumerable listA, IEnumerable listB)
{
if (listA == listB)
{
return true;
}
if ((listA == null) || (listB == null))
{
return false;
}
IEnumerator enumeratorA = listA.GetEnumerator();
IEnumerator enumeratorB = listB.GetEnumerator();
bool enumAHasValue = enumeratorA.MoveNext();
bool enumBHasValue = enumeratorB.MoveNext();
while (enumAHasValue && enumBHasValue)
{
if (!enumeratorA.Current.Equals(enumeratorB.Current))
{
return false;
}
enumAHasValue = enumeratorA.MoveNext();
enumBHasValue = enumeratorB.MoveNext();
}
// If we get here, and both enumerables don't have any value left, they are equal
return !(enumAHasValue || enumBHasValue);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.