/// <summary> /// See also https://msdn.microsoft.com/en-us/library/bb348567(v=vs.110).aspx /// </summary> /// <typeparam name="T"></typeparam> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static Bag <bool> BagEqual <T>(this Bag <T> a, Bag <T> b) => a.Dif(b).All(v => v.Value.A == v.Value.B);
private static Bag <T> DifSelectMany <T>( this Bag <T> a, Bag <T> b, Func <Counters, long> func) => a.Dif(b).SelectMany(v => Enumerable.Repeat(v.Key, (int)func(v.Value)));