Как Вы избавляетесь от IDisposableobject, создают в выражении Linq?

Так как CSS не имеет этого (все же, я полагаю, что следующая версия будет), последовать совету Konrad Rudolphs для предварительной обработки. Вы, вероятно, хотите использовать тот, который уже существует: m4

http://www.gnu.org/software/m4/m4.html

5
задан Jason 17 November 2009 в 19:24
поделиться

2 ответа

ОК; Я надеюсь, что это совпадение, но: SelectMany; объединение IDisposable и LINQ , что (с пользовательской реализацией SelectMany ) позволит:

    var foo =
        from r in Enumerable.Range(1, 3)
        from gen in new Generator()
        from g in gen.Gen(r)
        select g;

(обратите внимание, что я предполагаю , что для этого есть разумная причина r )

SelectMany

или с помощью метода расширения Using () (вместо SelectMany ):

    var foo =
        from r in Enumerable.Range(1, 3)
        from gen in new Generator().Using()
        from g in gen.Gen(r)
        select g;

Using

5
ответ дан 13 December 2019 в 22:10
поделиться

Похоже, вам не следует создавать новый объект Generator на каждой итерации по двум причинам:

  • Распределение (и потенциально многократно и быстро освобождает память.
  • Объект Generator , вероятно, предназначен только для одного экземпляра, чтобы генерировать значения для заданного набора параметров. Конечно, я могу ошибаться в этом, поэтому, пожалуйста, уточните, если необходимо.

Я рекомендую вам попробовать следующее:

using (var gen = new Generator())
{
    var foo =
        from r in Enumerable.Range(1, 3)
        from g in gen.Gen(r)
        select g;
}
5
ответ дан 13 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: