У меня один вопрос, в моей компании мы используем отчет о токсичности для измерения статического кода, используя метрику кода отражателя в качестве входных данных для инструмента отчета о токсичности, и, очевидно, я вижу дизассемблер кода. Я использую LINQ to Objects и XML, чтобы прояснить свой код, но я начинаю сталкиваться с некоторыми проблемами размера стека. Я увидел дизассемблированный код и начал видеть, что там, где я включаю предложение "where" linq, он генерирует делегат, а также создает метод, очевидно увеличивая размер моего стека, потому что создает больше методов. Кто-нибудь знает, как я могу избавиться от делегатов? вот пример:
Исходный код:
List<XElement> toolPnP =
(from c in xPnpInfo.Descendants("assignedSupport")
where c != null
select c).ToList();
Разберите код:
List<XElement> toolPnP = xPnpInfo.Descendants((XName) ("assignedSupport")).Where<XElement>(delegate (XElement c) {
return (c != null);
}).ToList<XElement>();
эти делегаты указывают на:
[CompilerGenerated]
private static bool <.ctor>b__2(XElement c)
{
return (c != null);
}
как я могу от этого избавиться, любая рекомендация будет очень кстати.