问题标签 [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.

0 投票
4 回答
402 浏览

c# - 通用接口

我正在设计一个应用程序,其中类似的实体位于两个不同类型的集合中,如下所示。

模型:

类似的视图模型:

为了使两个实体保持一致,我想使用通用接口来确保两者都实现所有属性,所以我创建了这样的东西:

和课程将是

但编译器还没有准备好编译我的界面。:( 说,类型参数“T”不能与类型参数一起使用。

我想要这个的原因,我想最小化从/到模型和视图模型的类型转换。

我的 viewModel 会是这样的,

建议我更好地让模型和视图模型同步。

0 投票
6 回答
4202 浏览

c - 带有宏的类型安全的通用容器

我正在尝试使用宏在 C 中创建一个类型安全的通用链表。它的工作方式应该类似于模板在 C++ 中的工作方式。例如,

我的第一次尝试是#define LIST(TYPE)(我上面使用的宏)定义一个struct _List_##TYPE {...}. 但是,这不起作用,因为每次我声明一个新列表时都会重新定义该结构。我通过这样做解决了这个问题:

但是另一个问题是,例如,当我有多个使用 . 的文件DEFINE_LIST(int)并且其中一些相互包含时,仍然会有同一个结构的多个定义。有什么方法可以DEFINE_LIST检查结构是否已经定义?

0 投票
1 回答
113 浏览

generics - 将继承对象的集合传递给接受基础对象的 ICollection 的方法

背景:我有一个通用的 type 集合,DirectoryCollection<T>并指定 T 必须是 type IEntity。我有一个具体类型Entity,它实现IEntity了两个派生类型,Employee并且Station.

在 .NET 4.0 中,我知道可以(从这里)调用带有IEnumerable<Entity>参数的方法DirectoryCollection<Employee>,但是,对于带有类型参数的方法似乎不起作用ICollection<Entity>。在所述方法中,我使用了集合的Removeand方法,因此犹豫是否要放入方法签名中。AddIEnumerable

解决这个问题的最佳实践是什么?

0 投票
2 回答
368 浏览

c# - 使用泛型类型作为基类的静态成员

我在类型的基类中有一个静态成员:

这个通用成员应该在所有派生类中都可用。我不知道如何解决它。

编辑
将成员更改为受保护,并不能解决我的问题。
为了更清楚,我使用了这行代码

但是每个派生类都有自己的副本,cachedList并且每个类都返回“真”的声明cachedList == null

0 投票
1 回答
844 浏览

c# - 泛型集合类型测试

无论泛型类型如何,我都想根据给定的集合类型(使用反射)进行一些操作。

这是我的代码:

它现在有效,但对我来说很明显它不是最安全的解决方案。

我也尝试过,它实际上可以编译但不起作用...我还尝试测试给定集合类型的所有接口,但这意味着集合中接口的排他性...

我希望我说清楚了,我的英语缺乏训练:)

0 投票
5 回答
88 浏览

c# - 如何修复此功能以便我可以输入任何类的列表

如何修复此功能以便我可以输入任何类的列表

0 投票
4 回答
15590 浏览

java - 避免返回通配符类型

我有一个带有单例通配符类型集合的类,例如:

我希望能够在客户端代码中向此集合添加不同的参数化类型:

到目前为止,据我了解,一切都很好。但是客户还需要能够获得Type<?>提供的Key. 因此,将添加类似以下的方法ObliviousClass

但在我方便的Effective Java副本中,我读到:

不要使用通配符类型作为返回类型。

我理解这个问题,因为客户必须将返回的Type<?>. 但我真的不想制作ObliviousClass一个泛型类型ObliviousClass<T>,因为这样我上面的客户端代码就不起作用了......

我想做的事情有更好的设计吗? -我目前的解决方案是为客户端提供静态方法;类似于:

我四处搜寻,但找不到完全消除我困惑的答案。

0 投票
2 回答
1006 浏览

.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>

0 投票
1 回答
216 浏览

c++-cli - 将 MyClass 值存储在 List 中

我对 C++\CLI 完全陌生,并且遇到以下问题:例如,我有一个名为 MyClass 的类,其中一些值需要存储在内存中。我决定使用 List,因为它是我最熟悉的,因为我长期使用 C#。所以这里是代码:

编译器一直说有一个错误C2582。但是如果没有赋值运算符,那么我应该如何初始化列表呢?
提前致谢。

0 投票
1 回答
1000 浏览

c# - 转换 ObservableCollection到 ObservableCollection

我有一个ObservableCollection<T>. T 有一个 ToString() 方法。我想做的是ObservableCollection<T>ObservableCollection<string>. 快速搜索后,我发现了一些建议使用 foreach 方法的文章 - 还有其他方法吗?例如: