private void AddSelection(Query query, string typePrefix, IAssetType type) { foreach (var attrInfo in attributesToQuery.Where(attrInfo => attrInfo.Prefix == typePrefix)) { IAttributeDefinition def; if (attrInfo.IsOptional) { if (!type.TryGetAttributeDefinition(attrInfo.Attr, out def)) { continue; } } else { def = type.GetAttributeDefinition(attrInfo.Attr); } query.Selection.Add(def); } }