我有这个代码(整个代码并不重要,但可以在这个链接上看到):
internal static class PlayCardActionValidator
{
public static bool CanPlayCard(...)
{
// ...
var hasBigger =
playerCards.Any(
c => c.Suit == otherPlayerCard.Suit
&& c.GetValue() > otherPlayerCard.GetValue());
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在反编译器(ILSpy)中打开代码后,我注意到<>c__DisplayClass0_0C#编译器存在新创建的类:
如果此代码对系统性能不重要,这对我来说不是问题.此方法被调用数百万次,垃圾收集器正在清理这些<>c__DisplayClass0_0实例,这会降低性能:
在使用该Any方法时,如何避免创建此类(他的实例和垃圾收集)?
为什么C#编译器会创建这个类,有没有Any()我可以使用的替代方法?