问题标签 [generic-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 通用接口
我正在设计一个应用程序,其中类似的实体位于两个不同类型的集合中,如下所示。
模型:
类似的视图模型:
为了使两个实体保持一致,我想使用通用接口来确保两者都实现所有属性,所以我创建了这样的东西:
和课程将是
但编译器还没有准备好编译我的界面。:( 说,类型参数“T”不能与类型参数一起使用。
我想要这个的原因,我想最小化从/到模型和视图模型的类型转换。
我的 viewModel 会是这样的,
建议我更好地让模型和视图模型同步。
c - 带有宏的类型安全的通用容器
我正在尝试使用宏在 C 中创建一个类型安全的通用链表。它的工作方式应该类似于模板在 C++ 中的工作方式。例如,
我的第一次尝试是#define LIST(TYPE)
(我上面使用的宏)定义一个struct _List_##TYPE {...}
. 但是,这不起作用,因为每次我声明一个新列表时都会重新定义该结构。我通过这样做解决了这个问题:
但是另一个问题是,例如,当我有多个使用 . 的文件DEFINE_LIST(int)
并且其中一些相互包含时,仍然会有同一个结构的多个定义。有什么方法可以DEFINE_LIST
检查结构是否已经定义?
generics - 将继承对象的集合传递给接受基础对象的 ICollection 的方法
背景:我有一个通用的 type 集合,DirectoryCollection<T>
并指定 T 必须是 type IEntity
。我有一个具体类型Entity
,它实现IEntity
了两个派生类型,Employee
并且Station
.
在 .NET 4.0 中,我知道可以(从这里)调用带有IEnumerable<Entity>
参数的方法DirectoryCollection<Employee>
,但是,对于带有类型参数的方法似乎不起作用ICollection<Entity>
。在所述方法中,我使用了集合的Remove
and方法,因此犹豫是否要放入方法签名中。Add
IEnumerable
解决这个问题的最佳实践是什么?
c# - 使用泛型类型作为基类的静态成员
我在类型的基类中有一个静态成员:
这个通用成员应该在所有派生类中都可用。我不知道如何解决它。
编辑
将成员更改为受保护,并不能解决我的问题。
为了更清楚,我使用了这行代码
但是每个派生类都有自己的副本,cachedList
并且每个类都返回“真”的声明cachedList == null
c# - 泛型集合类型测试
无论泛型类型如何,我都想根据给定的集合类型(使用反射)进行一些操作。
这是我的代码:
它现在有效,但对我来说很明显它不是最安全的解决方案。
我也尝试过,它实际上可以编译但不起作用...我还尝试测试给定集合类型的所有接口,但这意味着集合中接口的排他性...
我希望我说清楚了,我的英语缺乏训练:)
c# - 如何修复此功能以便我可以输入任何类的列表
如何修复此功能以便我可以输入任何类的列表
java - 避免返回通配符类型
我有一个带有单例通配符类型集合的类,例如:
我希望能够在客户端代码中向此集合添加不同的参数化类型:
到目前为止,据我了解,一切都很好。但是客户还需要能够获得Type<?>
提供的Key
. 因此,将添加类似以下的方法ObliviousClass
:
但在我方便的Effective Java副本中,我读到:
不要使用通配符类型作为返回类型。
我理解这个问题,因为客户必须将返回的Type<?>
. 但我真的不想制作ObliviousClass
一个泛型类型ObliviousClass<T>
,因为这样我上面的客户端代码就不起作用了......
我想做的事情有更好的设计吗? -我目前的解决方案是为客户端提供静态方法;类似于:
我四处搜寻,但找不到完全消除我困惑的答案。
.net - 堆实现 ICollection,但具有来自 ICollection 的方法
我正在尝试创建一个基于Stack<T>
. 当我在 Visual Studio 中查看Stack<T>
[来自元数据] 时,它显示Stack<T>
implements ICollection
,这将要求它实现ICollection
'CopyTo(Array array, index)
方法,但相反,它显示为具有ICollection<T>
'CopyTo(T[] array, index)
方法。有人可以解释为什么会这样吗?
我正在尝试创建一个Stack<T>
非常模仿的集合。当我ICollection
像堆栈一样实现时,它需要我使用该CopyTo(Array array, index)
方法,但我真正想要的是使用该CopyTo(T[] array, index)
方法,就像这样Stack<T>
做一样。有没有办法在不实施的情况下实现这一目标ICollection<T>
?
c++-cli - 将 MyClass 值存储在 List 中
我对 C++\CLI 完全陌生,并且遇到以下问题:例如,我有一个名为 MyClass 的类,其中一些值需要存储在内存中。我决定使用 List,因为它是我最熟悉的,因为我长期使用 C#。所以这里是代码:
编译器一直说有一个错误C2582。但是如果没有赋值运算符,那么我应该如何初始化列表呢?
提前致谢。
c# - 转换 ObservableCollection到 ObservableCollection
我有一个ObservableCollection<T>
. T 有一个 ToString() 方法。我想做的是ObservableCollection<T>
将ObservableCollection<string>
. 快速搜索后,我发现了一些建议使用 foreach 方法的文章 - 还有其他方法吗?例如: