private static List<List<Resource>> DeepClone(List<List<Resource>> list) { var result = new List<List<Resource>>(list.Count); result.AddRange(list.Select(l => new List<Resource>(l))); return result; }