问题标签 [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 投票
2 回答
171 浏览

.net - 字典: 使用自定义类作为键

IDictionary<KeyClass, ValueClass>在我的一个项目中使用。KeyClass非常简单,只包含两个整数。

我正在从字典中访问值,如下所示:

字典肯定包含KeyClass带有ValueA = 1和类似的ValueB = 1许多其他键的键。但我有例外:

IComparable在课堂上实施,KeyClass但没有解决我的问题。我用谷歌搜索并找到了这篇CodeProject文章。它描述了使用类实现IEqualityComparer<T>接口的以下技术。我在课堂上定义了它:

现在我必须声明IDictionary<KeyClass, ValueClass>如下:

之后事情进展顺利。

我的问题是我在保存环境(.Net 4.0,Windows 7 桌面应用程序)中使用相同的类并且在另一个项目中KeyClass没有IEqualityComparet<T>实现,但是为什么在我将类放入这个项目后它停止工作?

0 投票
3 回答
646 浏览

c# - 在从文件中读取数据时将排序的数据添加到哈希表或字典中

我有一个包含
A、15
B、67
C、45
D、10的文件

我正在从文件中读取数据,但我想将数据读入字典或哈希表,但数据应按其值
B、67
C、45
A、15
D.10排序到其中

如果任何其他列表将作为有效的方式工作,请建议

谢谢

0 投票
1 回答
2100 浏览

c# - Visual C# 2010 Express 中的 System.Collections.Generic 不完整

我试图在 Visual C# 2010 Express 中访问 System.Collections.Generic.Stack<>,但 IDE(和编译器)声称它不存在。还缺少其他几个类,包括 LinkedList<>、SortedList<> 和 Queue<>。我检查了 System.Collections.Generic 命名空间和 C# Express 的文档,找不到任何故意限制的参考。

奇怪的是,如果我按字母顺序对 System.Collections.Generic 命名空间的文档内容进行排序,则 List<> 之后的所有内容都会丢失,但这可能只是一个非常奇怪的巧合。

编辑:我尝试使用 MSBuild 进行命令行构建,它也抱怨错误 CS0246。但是,使用 csc 有效。

跟进:我尝试从我的项目中删除所有资源并添加一个刚刚创建 Stack<> 实例的存根类。不仅如此,在重新添加旧类并删除存根后,一切仍然有效。我只能假设发生了某种缓存愚蠢行为。很烦人。如果这个问题再次出现,我会重新打开。

0 投票
1 回答
514 浏览

c# - 填充嵌套的 ObservableCollection

我有一堂课

从数据库返回的数据是

我需要用上述数据(如树结构)填充我的变量 ObservableCollection Owner。请帮助我。

0 投票
3 回答
2694 浏览

java - 列表中特定的通用类型列表

我有一个列表列表。

我想知道如何限制每个内部列表的泛型类型,以便外部列表的每个元素都包含一个只能包含一种对象类型的内部列表。到目前为止,我已经尝试过:

但是有一些方法可以将对象类型添加到不属于的内部列表中。有没有办法指定内部列表接受的类型?

例如,如果我有以下内部列表,

我将如何创建一个外部列表,它可以包含所有内部列表,同时保留内部列表包含的特定类型。

我也不确定这是否可能,或者我所做的是否是糟糕的设计。如果它是糟糕的设计,对更好的设计的洞察力(也许有一个不同的系列做得更好)将不胜感激。

0 投票
1 回答
2125 浏览

java - 在 JAXB 中解组 TreeSet

我有一个类,我希望使用 JAXB 从 XML 文件中填充内容。我的 XML 文件与此类似:

我的 JAXB 注释类如下所示:

我发现这种安排将我的对象正确地序列化为 XML,但是当我尝试将其转换回TreeSet时,我使用的变成了HashSet

从理论上讲,我的集合可以固定到 TreeSet(它确实解决了问题),但我宁愿正确配置 JAXB 并将该逻辑推迟到其他地方。我如何告诉 JAXB 改为构建 TreeSet?

0 投票
3 回答
115 浏览

java - 与不同类型的集合相交

我有Collection<A> caCollection<B> cbA并且B没有共享通用接口,但每个接口都有一个String名为something. 我只需要过滤ca并保留那些在cb.

A不幸的是,B这个问题/答案创建一个通用界面并不是一种选择。

我目前在做

利用我知道做什么的事实B.equals。在性能和/或资源方面,我能做些什么来改善这一点?

0 投票
4 回答
155 浏览

c# - 添加元素的简单通用集合

我应该从 C# 中使用什么集合来支持泛型仅用于添加元素?我尝试使用ArrayList,但我发现它是非泛型类型。

抱歉,如果这是重复的。谢谢。

0 投票
6 回答
5062 浏览

c# - C# foreach 对一个接口的集合

我想知道 C#/LINQ 是否内置了任何功能来简化以下内容:

类似于以下内容:

我意识到以下内容很接近:

但是当代码依赖于集合的顺序时它不起作用。

0 投票
2 回答
450 浏览

c# - 为什么 C# 不支持泛型的泛型(具有参数化类型的泛型)?

最近(可能是设计缺陷)我面临一项常规任务,需要有一个MyType<T>whereT不固定的集合(即在一个集合中存在多个不同的泛型实例化)。

由于它被广泛提议(对于这种情况),声明了一个抽象类:

然后我有一个集合MyType。但是对于这个集合,我有一个限制,即任何类型的元素都不能超过一个T

因此,我对ICollection<TBase>. 我想在其中包含一种Get<TParam>()获取与 type 对应的项目的方法TParam。稍后使用,如:

但是我意外地发现我什至不能声明它:

因为内部泛型(或所谓的“泛型泛型”)既不受 C# 支持,也不受 .NET 支持(我想)。您认为这些限制背后是否有任何具体原因(复杂性除外)?

更新 1.询问编译器版本和编译器错误。

Microsoft C#、.NET 3.5 (Visual Studio 2010)。错误:

错误 CS0081:类型参数声明必须是标识符而不是类型

错误 CS0246:找不到类型或命名空间名称“TCustom”(您是否缺少 using 指令或程序集引用?)

更新 2.询问我是否需要修复或解释原因。我真的很想知道为什么。但是,如果您对问题有很好的解决方案,也欢迎您。

更新 3.这个问题可能已经在这篇博文中得到了回答。看起来 CLR 团队承受着很大的压力,不能让语言过于复杂。