public IEnumerable <KeyValuePair <K, KeyValuePair <Property, object>[]> > Extract(params K[] subset) => subset .Select( k => { var k_key = k.ToString(); return (new KeyValuePair <K, KeyValuePair <Property, object>[]>( k, storage .Children .Select( property_objID => { var propertyname = storage.GetRelation(property_objID); var property = propertymanager.Access(propertyname); var value = Deserializers[property](storage.Graph[property_objID].Get(k_key)); var kvp = new KeyValuePair <Property, object>( property, value ); return kvp; } ) .ToArray() )); } );