예제 #1
0
        /// <summary>
        /// GetUnion 高效地求两个List元素的并集。
        /// </summary>
        public static List <T> GetUnion <T>(IList <T> list1, IList <T> list2)
        {
            SortedDictionary <T, int> result = new SortedDictionary <T, int>();

            foreach (T tmp in list1)
            {
                if (!result.ContainsKey(tmp))
                {
                    result.Add(tmp, 0);
                }
            }

            foreach (T tmp in list2)
            {
                if (!result.ContainsKey(tmp))
                {
                    result.Add(tmp, 0);
                }
            }

            return((List <T>)CollectionConverter.CopyAllToList <T>(result.Keys));
        }
예제 #2
0
 /// <summary>
 /// ConvertAll 将source中的每个元素转换为TResult类型
 /// </summary>
 public static IList <TResult> ConvertAll <TObject, TResult>(IEnumerable <TObject> source, Func <TObject, TResult> converter)
 {
     return(CollectionConverter.ConvertSpecification <TObject, TResult>(source, converter, null));
 }