/// <summary>
        /// GetOneByValue 从字典中找出第一个值与val相等的记录的key
        /// </summary>      
        public static TKey GetOneByValue<TKey, TValue>(IDictionary<TKey, TValue> dic, TValue val)
            where TKey : class
            where TValue : IEquatable<TValue>
        {

            return CollectionHelper.FindFirstSpecification<TKey>(dic.Keys, delegate(TKey cur) { return dic[cur].Equals(val); });
        }
Example #2
0
        /// <summary>
        /// ConvertSpecification 将source中的符合predicate条件的第一个元素转换为TResult类型
        /// </summary>
        public static TResult ConvertFirstSpecification <TObject, TResult>(IEnumerable <TObject> source, Func <TObject, TResult> converter, Predicate <TObject> predicate)
        {
            TObject target = CollectionHelper.FindFirstSpecification <TObject>(source, predicate);

            if (target == null)
            {
                return(default(TResult));
            }

            return(converter(target));
        }