Esempio n. 1
0
        /// <summary>
        /// Suma dos ListaExtra.ListaPeso coordenada a coordenada.
        /// </summary>
        /// <param name="left">Primer sumando.</param>
        /// <param name="right">Segundo sumando.</param>
        /// <returns></returns>
        protected static ListaPeso <T, TVal> Sumar(ListaPeso <T, TVal> left,
                                                   IDictionary <T, TVal> right)
        {
            var ret = new ListaPeso <T, TVal> (left.Suma, left.Nulo, left.Comparador);

            foreach (var x in left)
            {
                ret [x.Key] = x.Value;
            }
            foreach (var x in right)
            {
                ret [x.Key] = ret.Suma(ret [x.Key], x.Value);
            }
            return(ret);
        }
Esempio n. 2
0
        /// <summary>
        /// Devuelve la lista inversa a esta instancia.
        /// </summary>
        /// <returns></returns>
        public ListaPeso <T, TVal> Inverso()
        {
            if (Inv == null)
            {
                throw new NullReferenceException("No está definito Inv");
            }
            var ret = new ListaPeso <T, TVal> (Suma, Nulo, Comparador);

            ret.Inv = Inv;
            foreach (var x in Keys)
            {
                ret.Add(x, Inv(this [x]));
            }
            return(ret);
        }