Вопрос или проблема
Функция дампа LinqPad не игнорирует столбцы
У меня есть набор данных, из которого я хочу исключить небольшой набор столбцов. Поэтому я использую опцию исключения. Но дамп действительно их не игнорирует.
// Список столбцов, которые нужно игнорировать, в виде строки, разделенной запятыми
var columnsToIgnore = "sessionDate, initializedTime, entryTime, TradeNumber, EntryNumber, BarssinceDirectionStarted, halfExitTime, baseBreakoutPrice, initial_scalein1price_monitor, commission_exit, smallgains_exit, scaleout1price, scaleout1time, scaleout1qty, scaleout2price, scaleout2time, scaleout2qty, scaleoutqty, finalscaleoutqty, scaleoutMFE, scaleoutMAE, halfExitPrice, triggerTrailStopPercent, todayDailyRangeTakenBeforeEntry, todayTargetRemainingatStart, todayTargetRemainingatEnd, cumulativeMAEtoday, cumulativeMFEtoday, MeetTargetToday, reEntryTimeinMinutes, reEnteredSameDirection, CrossedWeekend, pulledBackin5, movedBackin5, movedStop45, MaxMoveBeforePullback, MaxMoveAgainstAfterPullback, pulledBackin5Time, movedBackinTime, fastMovein5min_count, url, entryQty, hh7, mfe_after_1ATRAGainst_trigger, mfe_after_2ATRAGainst_trigger, mfe_after_3ATRAGainst_trigger, mfe_after_yesterdayedge, mae_after_yesterdayedge, StockasisticsAverage, equalabrium_ratio, below_equalabrium_rate, ccicrossedzerotimes, ccicrossed100times, ccicrossed200times, cciAgaist0Bars, cciAgainst100Bars, cciAgainst200Bars, cci20Against200Bars, countMacdAgainst, totalbars, minute5ATR_inpips, BEFOREENTRY_Need2CancelAgainstHH7eqTRUE, macd_difference, macdagainstPercent, DAilyCCI_20, tightenStop4MidHH7SameDirection, HigherTF_HH7Against, HigherTF_9EMA_TOUCHED, shortTermMACrossed, touchedDailyDonchiantoday, stockDOppExtreme, stockDcameback, longTermDirection, OppEdgeReversalEntry, EventsManaged_archieved, EventsManaged, oco_id_for_exit_triggered, oco_id_for_exit2_triggered, totalWaves, count_completedWaves, totalWavesin5Min, completedWavesin5Min, tradeRating, instrument, account, EMA20Used, DonchianUsed, missingbars, ninjatradenumber, Entry_name, ChangedDirectionPreEntry, inTradeChangeDirection, entry_MOVINGAVERAGE_FAILED, Open2directionedge, Open2Awayedge, quantity, cciup1, cciup2, ccidown1, ccidown2, weak5minutebreakout_Stoptriggered, profitImproved, HH7against";
// Добавьте любые дополнительные столбцы в список
// Выполнить дамп коллекции, исключая указанные столбцы
analyticsObjectsCollection.Dump("MachineLearningFile", exclude: columnsToIgnore);
Ответ или решение
Чтобы успешно исключить определённые столбцы из вывода функции Dump
в LINQPad, важно убедиться, что формат списка столбцов, который вы передаёте, соответствует ожидаемым требованиям. Рассмотрим несколько шагов, которые помогут вам решить проблему, когда функция Dump
не игнорирует указанные столбцы.
Шаги по устранению проблемы:
-
Форматирование строки:
Убедитесь, что список столбцов для игнорирования правильно отформатирован. Столбцы должны быть перечислены через запятую без лишних пробелов. Пример:var columnsToIgnore = "sessionDate, initializedTime, entryTime, TradeNumber, ... , HH7against";
-
Проверка реализации:
Убедитесь, что все названия столбцов совпадают с именами, используемыми в вашей коллекции. Даже небольшая разница в регистре или пробелах может вызвать проблему. Проверьте, есть ли лишние пробелы в начале и конце названий столбцов. -
Вызов метода Dump:
Если вы используете методDump
правильно, но исключённые столбцы всё равно отображаются, попробуйте следующий подход:// Проверяем, что коллекция не пуста и что существует хотя бы один элемент для вывода if (analyticsObjectsCollection.Any()) { analyticsObjectsCollection.Dump("MachineLearningFile", exclude: columnsToIgnore.Split(',').Select(s => s.Trim()).ToArray()); } else { "Коллекция пуста".Dump(); }
-
Обновление и тестирование:
Убедитесь, что используете последнюю версию LINQPad. Иногда проблемы могут быть связаны с ошибками в специфичных версиях. После выполнения изменений протестируйте выходные данные снова, чтобы убедиться, что столбцы игнорируются. -
Альтернативный способ игнорирования столбцов:
Если вышеуказанные рекомендации не помогли, вы можете создать новый анонимный тип, в который будут включены только нужные столбцы. Например:var filteredData = analyticsObjectsCollection.Select(a => new { a.SomeColumn, // Укажите только необходимые столбцы a.AnotherColumn, // Добавьте другие необходимые столбцы }).ToList(); filteredData.Dump("FilteredMachineLearningFile");
Заключение
Используя вышеуказанные шаги, вы сможете успешно исключить нежелательные столбцы из вывода вашей коллекции в LINQPad. Обязательно проверьте формат и регистр названий столбцов, и протестируйте изменения, чтобы гарантировать, что выходные данные соответствуют вашим ожиданиям. Если у вас остались вопросы или возникли дополнительные трудности, не стесняйтесь задавать их.