Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Returns the index of the first occurrence in a sequence by using the default equality comparer

//The MIT License (MIT) //http://arolibraries.codeplex.com/license using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading; namespace AroLibraries.ExtensionMethods.Enumerable {     public static class IEnumerableExt     {         /// <summary> Returns the index of the first occurrence in a sequence by using aspecified IEqualityComparer.          /// </summary> ///         /// <typeparam name="TSource">The type of the elements of source.</typeparam>         /// <param name="list">A sequence in which to locate a value.</param> ///         ///  <param name="value">The object to locate in the sequence</param> /// <param name="comparer">An equality comparer to compare values.</param>          /// <returns>The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, â€“1.</returns>         public static int Ext_IndexOf<TSource>(this IEnumerable<TSource> list, TSource value, IEqualityComparer<TSource> comparer)         {             int index = 0;             foreach (var item in list)             {                 if (comparer.Equals(item, value))                 {                     return index;                 }                 index++;             }             return -1;         }         /// <summary>  Returns the index of the first occurrence in a sequence by using the default equality comparer.          ///</summary>          /// <typeparam name="TSource">The type of the elements of source.</typeparam>          /// <param name="list">A sequence in which to locate a value.</param>          /// <param name="value">The object to locate in the sequence</param>          /// <returns>The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, â€“1.</returns>         public static int Ext_IndexOf<TSource>(this IEnumerable<TSource> list, TSource value)             where TSource : IEquatable<TSource>         {             return list.Ext_IndexOf<TSource>(value, EqualityComparer<TSource>.Default);         }     } }