public void Remove(bool prompt) { var selectedViewNames = new HashSet <ViewName>(chooseViewsControl1.SelectedViews); if (selectedViewNames.Count == 0) { return; } string message; if (selectedViewNames.Count == 1) { message = string.Format(Resources.ManageViewsForm_BtnRemoveOnClick_Are_you_sure_you_want_to_delete_the_view___0___, selectedViewNames.First().Name); } else { message = string.Format(Resources.ManageViewsForm_BtnRemoveOnClick_Are_you_sure_you_want_to_delete_these__0__views_, selectedViewNames.Count); } if (prompt && ViewContext.ShowMessageBox(this, message, MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } var namesByGroup = selectedViewNames.ToLookup(name => name.GroupId, name => name.Name); foreach (var grouping in namesByGroup) { ViewContext.DeleteViews(grouping.Key, grouping); } }