public FrameDR Sel(params string[] columns) { var notfound = columns.Where(c => !FrameColumns.ContainsKey(c) || !CustomColumns.ContainsKey(c)); if (notfound.Count() != 0) { throw new ArgumentException($"The following columns do not exist in the row: {notfound.Aggregate((s1, s2) => s1 + "," + s2)}."); } var frameColumns = FrameColumns.Where(c => columns.Contains(c.Key)); FrameDR dr = null; if (columns.Count() != 0) { dr = new FrameDR(this.Frame, this.Index, frameColumns.Select(c => c.Value).ToArray()); } else { dr = new FrameDR(); } var customColumns = CustomColumns.Where(c => columns.Contains(c.Key)); foreach (var c in customColumns) { dr.Add((c.Key, c.Value)); } return(dr); }
public FrameDR Ex(params string[] columns) { var dr = new FrameDR(this.Frame, this.Index, this.FrameColumns.Where(s => !columns.Contains(s.Key)).Select(c => c.Value).ToArray()); foreach (var kv in this.CustomColumns.Where(s => !columns.Contains(s.Key))) { dr.Add((kv.Key, kv.Value)); } return(dr); }
public FrameDREnumerator(FrameDR r) { row = r; }