public SequenceData Operate(IList <ProcParam <SequenceProcEnv> > args, SequenceProcEnv env)
        {
            SequenceColumnMultiSelectParameter si = args[0] as SequenceColumnMultiSelectParameter;
            List <int>       indices = si.Value.Where(i => 0 <= i && i < env.SelectedSequence.Values.ColumnNames.Length).ToList();
            TimeSeriesValues val     = new TimeSeriesValues(indices.Select(i => env.SelectedSequence.Values.ColumnNames[i]));

            foreach (var pair in env.SelectedSequence.Values.Enumerate())
            {
                val.SetValue(pair.Key, indices.Select(i => pair.Value[i]).ToArray());
            }
            SequenceData ret = new SequenceData(val, new LabelingBorders(env.SelectedSequence.Borders), PathEx.GiveName("Extracted", env.SelectedSequence.Title));

            ret.Type = SequenceType.Numeric;
            return(ret);
        }
        public IList <ProcParam <SequenceProcEnv> > GetParameters()
        {
            SequenceColumnMultiSelectParameter si = new SequenceColumnMultiSelectParameter("Indices Extracted");

            return(new ProcParam <SequenceProcEnv>[] { si });
        }