static void TestProductDistinctParallel() { int count = 100; // Los datos de entrada var data = ProductSet .Samples(count); // Asociamos los datos con la regla de combinación var input = data .Select(x => new ProductDistinctMonoid(x) as Monoid <ProductSet>) .ToArray(); // Reducción secuencial var seqRes = input.Aggregate(ProductDistinctMonoid.Empty, (a, b) => a * b); Console.WriteLine("seqRes: {0}", seqRes); // Reducción en paralelo // Ejemplo ilustrativo, pueden ser varios servidores. var parRes = input.AsParallel().Aggregate(ProductDistinctMonoid.Empty, (a, b) => a * b); Console.WriteLine("parRes: {0}", parRes); Console.WriteLine("seqRes == parRes: {0}", seqRes == parRes); Console.WriteLine(); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is ProductSet)) { return(false); } ProductSet other = (ProductSet)obj; return(_items.SetEquals(other._items)); }