public ArkItemTypeGroup(ArkItem[] all) { All = all ?? new ArkItem[] { }; _items = new Lazy <ArkItem[]>(() => All.Where(x => !x.IsBlueprint).ToArray()); _blueprints = new Lazy <ArkItem[]>(() => All.Where(x => x.IsBlueprint).ToArray()); _countItems = new Lazy <int>(() => Items.Any() ? (int)Items.Sum(x => x.Quantity) : 0); _countBlueprints = new Lazy <int>(() => Blueprints.Any() ? (int)Blueprints.Sum(x => x.Quantity) : 0); _count = new Lazy <int>(() => CountItems + CountBlueprints); }