Collections Data Structure C#

/*
 * Copyright  2002-2005 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;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
namespace Spring.Util.Generic
{
  /// 
  /// Miscellaneous generic collection utility methods.
  /// 

  /// 
  /// Mainly for internal use within the framework.
  /// 

  /// Mark Pollack (.NET)
  public sealed class CollectionUtils
  {
    /// 
    /// Determines whether the  contains the specified .
    /// 

    /// The collection to check.
    /// The object to locate in the collection.
    ///  if the element is in the collection,  otherwise.
    public static bool Contains(ICollection collection, Object element)
    {
      if (collection == null)
      {
        throw new ArgumentNullException("Collection cannot be null.");
      }
      MethodInfo method;
      method = collection.GetType().GetMethod("contains", BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public);
      if (null == method)
      {
        throw new InvalidOperationException("Collection type " + collection.GetType() + " does not implement a Contains() method.");
      }
      return (bool) method.Invoke(collection, new Object[] {element});
    }
   }
}