Hard to help you, as I don't understand what you don't understand.
Of course, I don't know why the original developer went to this trouble and yet didn't go to the trouble of using dependency injection.
Zooming in specifically on your problem line:
Factory = new MangoFactory<IMango>((aBC, eatableMango) => new Mango(aBC, eatableMango));
I'm going to assume that you know what an anonymous delegate is, and what a lambda expression is. If you aren't familiar with these, then Igor is your man for the answer.
This is basically the "lambda expression as factory method" subspecies of singleton factory pattern.
I'm also assuming that somewhere in MangoFactory there is a Func<string,bool,IMango> member. This is the function used by the MangoFactory to generate new Mangos.
Ultimately, the pattern being followed is one where (likely) the following line is what it used to instantiate a Mango:
var theMango = Mango.Factory.CreateMango("foo",true);
And the goal was to hide the details of Mango construction.