public CellQuery CreateQueryFromCellNames(IList <string> Cells) { var invalid_names = Cells.Where(cellname => !this.ContainsCell(cellname)).ToList(); if (invalid_names.Count > 0) { string msg = "Invalid cell names: " + string.Join(",", invalid_names); throw new ArgumentException(msg); } var query = new CellQuery(); foreach (string resolved_cellname in this.ResolveNames(Cells)) { if (!query.CellColumns.Contains(resolved_cellname)) { var resolved_src = this[resolved_cellname]; query.AddCell(resolved_src, resolved_cellname); } } return(query); }