求iText7 Java示例中Collections类的VB.Net等效写法及代码替换方案
VB.Net 等效替代指定 Java 代码的写法
原Java代码的作用是创建一个包含EventType.RENDER_TEXT的不可修改的有序Set集合(LinkedHashSet保证元素插入顺序,unmodifiableSet限制后续修改)。对应的VB.Net等效写法分两种场景:
方法一:.NET Framework 4.5+ / .NET Core 及以上
利用LinkedHashSet<T>的AsReadOnly()方法直接生成不可修改的有序Set:
Return New LinkedHashSet(Of EventType)({EventType.RENDER_TEXT}).AsReadOnly()
New LinkedHashSet(Of EventType)({EventType.RENDER_TEXT}):对应Java的new LinkedHashSet<>(Collections.singletonList(EventType.RENDER_TEXT)),创建包含目标元素的有序集合.AsReadOnly():对应Java的Collections.unmodifiableSet(...),返回只读包装器,任何修改操作都会触发NotSupportedException
方法二:使用不可变集合(推荐跨版本兼容)
如果项目依赖System.Collections.Immutable包(可通过NuGet安装),可以用不可变有序集合实现完全一致的效果:
Return ImmutableLinkedHashSet.Create(Of EventType)(EventType.RENDER_TEXT)
Immutable集合本身不可修改,无需额外包装,天然符合原Java代码的设计意图。
内容的提问来源于stack exchange,提问作者schlebe
相关产品推荐
相关产品推荐

