public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, IEnumerable <ClrType> types) { if (types == null) { return(heap.EnumerateClrObjects()); } IList <ClrType> castedTypes = types as IList <ClrType> ?? types.ToList(); if (castedTypes.Count == 0) { return(heap.EnumerateClrObjects()); } if (castedTypes.Count == 1) { return(heap.EnumerateClrObjects(castedTypes[0])); } HashSet <ClrType> set = new HashSet <ClrType>(castedTypes); return(from address in heap.EnumerateObjects() let type = heap.GetSafeObjectType(address) where set.Contains(type) select new ClrObject(address, type)); }
public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, IEnumerable <string> typeNames) { if (typeNames == null) { return(heap.EnumerateClrObjects()); } IList <string> castedTypes = typeNames as IList <string> ?? typeNames.ToList(); if (castedTypes.Count == 0) { return(heap.EnumerateClrObjects()); } if (castedTypes.Count == 1) { return(heap.EnumerateClrObjects(castedTypes[0])); } HashSet <string> set = new HashSet <string>(castedTypes, StringComparer.OrdinalIgnoreCase); return(from address in heap.EnumerateObjects() let type = heap.GetSafeObjectType(address) where type != null && set.Contains(type.Name) select new ClrObject(address, type)); }
public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, params string[] typeNames) { return(heap.EnumerateClrObjects((IEnumerable <string>)typeNames)); }
public static IEnumerable <ClrObject> EnumerateClrObjects(this ClrHeap heap, params ClrType[] types) { return(heap.EnumerateClrObjects((IEnumerable <ClrType>)types)); }