Finds a value of the given type in the given collection. : ICollection « Collections Data Structure « C# / C Sharp






Finds a value of the given type in the given collection.

  

#region License

/*
 * 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.
 */

#endregion

#region Imports

using System;
using System.Collections;
using System.Reflection;

#endregion

namespace Spring.Util
{
    /// <summary>
    /// Miscellaneous collection utility methods.
    /// </summary>
    /// <remarks>
    /// Mainly for internal use within the framework.
    /// </remarks>
    /// <author>Mark Pollack (.NET)</author>
    public sealed class CollectionUtils
    {
        /// <summary>
        /// Finds a value of the given type in the given collection.
        /// </summary>
        /// <param name="collection">The collection to search.</param>
        /// <param name="type">The type to look for.</param>
        /// <returns>a value of the given type found, or null if none.</returns>
        /// <exception cref="ArgumentException">If more than one value of the given type is found</exception>
        public static object FindValueOfType(ICollection collection, Type type)
        {

            Type typeToUse = (type != null ? type : typeof(object));
            object val = null;
            foreach (object obj in collection)
            {
                if (typeToUse.IsAssignableFrom(obj.GetType()))
                {
                    if (val != null)
                    {
                        throw new ArgumentException("More than one value of type[" + typeToUse.Name + "] found.");
                    }
                    val = obj;
                }
            }
            return val;
        }
    }
}

   
    
  








Related examples in the same category

1.Adds a new element to the specified collection.
2.Adds all of the elements of the "c" collection to the "target" collection.
3.Removes all the elements from the collection.
4.Determines whether the collection contains the specified element.
5.Removes the specified element from the collection.
6.Retains the elements in the target collection that are contained in the specified collection
7.Returns an array containing all the elements of the collection.
8.Converts an ICollection instance to an ArrayList instance.
9.Tests if the specified object is a collection and converts it to its string representation.
10.Determines whether the collection contains the specified element
11.Adds the specified element to the specified collection
12.Determines whether the collection contains all the elements in the specified collection.
13.Removes all the elements from the target collection that are contained in the source collection.
14.Converts an System.Collections.ICollection instance to an System.Collections.ArrayList instance.
15.Copies the elements of the ICollection to a new array of the specified element type.
16.Determine whether a given collection only contains a single unique object
17.Is a Collection Null Or Empty Or Default
18.Converts the specified collection to its string representation.
19.Group the collection using a function which returns the key.
20.Convert ICollection to T[]
21.Convert ICollection to T[]
22.ConvertAll ICollection to TOut[] with Converter
23.Add range to Collection
24.Lambda Collections Generic Set