private static IList<ILayoutInfo> RemoveBaseCloneLoayout(ILayoutList<ILayoutInfo> inputList) { var outputlist = new List<ILayoutInfo>(); if (inputList != null) { outputlist.AddRange(inputList); foreach (var item in inputList.Where(info => info.AccountId != 0).Select(info => inputList.FirstOrDefault(x => x.AccountId == 0 && x.Name == info.Name)).Where(item => item != null)) { outputlist.Remove(item); } } return outputlist; }