Determines whether the IEnumerable contains the specified Object. - CSharp System.Collections.Generic

CSharp examples for System.Collections.Generic:IEnumerable

Description

Determines whether the IEnumerable contains the specified Object.

Demo Code

/*/*from  w  w  w  .  j a  v  a2 s .  com*/
 * Copyright ? 2002-2011 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
using System.Reflection;
using System.Collections;
using System;

public class Main{
        /// <summary>
        /// Determines whether the <paramref name="collection"/> contains the specified <paramref name="element"/>.
        /// </summary>
        /// <param name="collection">The collection to check.</param>
        /// <param name="element">The object to locate in the collection.</param>
        /// <returns><see lang="true"/> if the element is in the collection, <see lang="false"/> otherwise.</returns>
        public static bool Contains(IEnumerable collection, Object element)
        {
            if (collection == null)
            {
                return false;
            }

            if (collection is IList)
            {
                return ((IList) collection).Contains(element);
            }

            if (collection is IDictionary)
            {
                return ((IDictionary) collection).Contains(element);
            }

            MethodInfo method = collection.GetType().GetMethod("contains", BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public);
            if (null != method)
            {
                return (bool)method.Invoke(collection, new Object[] { element });
            }
            foreach (object item in collection)
            {
                if (object.Equals(item, element))
                {
                    return true;
                }
            }
            return false;
        }
}

Related Tutorials