问题标签 [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 回答
4480 浏览

c# - 有人知道一个好的 LinkedDictionary/Hashed LinkedList 吗?

我需要一个介于字典和 LinkedList 之间的通用集合。我希望能够:

  • 按键访问元素
  • 访问上一个和下一个元素

我查看了提供的通用集合以及专门的集合。我还没有真正找到我要找的东西,最接近的集合是 OrderedDictionary 和 SortedDictionary。

一个快速的谷歌发现了以下潜在的集合:

每个似乎都非常合适。但是,我想问问 SO 的大师们他们的建议是什么。

那么大师们,你们有什么建议呢?您是否使用这些集合或其他集合来完成这些或相关目标?有什么明显的东西是我应该看的,但我只是想念吗?

0 投票
4 回答
2431 浏览

c# - List接口:从Java到C#

这些天我是一名学习 C# 的 Java 程序员。

通常在 Java 中使用列表时,最好针对其接口进行编程,以便在实现之间切换:

C# 呢?是否存在类似的方法?有人可以给我看一个例子吗?从现在开始我正在以这种方式构建一个列表,但我不认为 List 是一个接口:

0 投票
3 回答
127 浏览

c# - 城市而不是 id 似乎出现在下拉列表值上

加载下拉列表时出现问题,下拉列表值上显示城市而不是 id。问题是什么?

0 投票
2 回答
1322 浏览

dynamic - 在 .net4 中使用带有泛型集合的动态时无法理解异常

请检查以下代码:

这是“动态”机制中的错误吗?

0 投票
5 回答
89 浏览

c# - C#:在列表中查找类字段

我有以下代码:

如果我想在 var1 = 20 的 List 中找到对象的索引 #,我该怎么做(在这种情况下,var1 = 20 在 myList[1] 中)?

我尝试使用 Contain() 但出现错误。

在相关主题上,假设 var1 的每个值都是唯一的,如果我使用以 var1 作为键的字典会不会更快。谢谢。

0 投票
1 回答
1946 浏览

java - 当泛型类型信息不可用时,如何避免编译器警告?

我正在使用 SpringRestTemplate对 REST Web 服务进行调用。其中一个调用是返回特定类型的对象列表。这些RestTemplate方法要求提供类参数以指示预期的返回类型。

显然,这不会编译。当您提供这样的类型参数时,您无法获得静态.class属性。当我删除类型参数时,代码会编译,但这会产生rawtypes编译器警告。

我的问题很简单。我是坚持抑制编译器警告还是有更简洁的方法来编写代码?

0 投票
1 回答
781 浏览

c# - 一个对象池包含不同的派生类

简洁版本:

我将如何创建一个对象池来存储从同一个基类派生的不同类型的类?
有关预期用法的示例,请参见下文。


长版:

我有一个类BaseComponent,有许多派生类Child1Component,例如Child2Component.

我还有另一个对象表示这些组件的集合,它们的属性设置为特定值。我称之为 an EntityTemplate,因为实体是由一组组件及其值定义的。

我想基于实体组件创建实体。为此,目前我得到了适当的EntityTemplate,循环遍历它的不同组件并调用Clone我在每个子类上定义的方法。我也在Copy那里定义了一个方法,这可能很有用。

当实体过期时,我想将其组件添加到对象池中,然后当我接下来需要创建实体时,我将获取实体模板,并且对于每个组件,我将从池中获取相同类型的一个并将其属性设置为等于 中的属性EntityTemplate,如下所示:

0 投票
4 回答
881 浏览

c# - 有没有更好的方法来编写一个接受多种类型的 C# 函数?

一些上下文:我想编写一个类,其中将事物添加到集合的主要方法是通过名为 Add (或类似名称)的方法(或方法)。所以看起来最好的签名是 params object[]。在内部,这个函数必须切换/if-else 它可以接受的所有类型。所以,最初它可以接受这个 object[] 数组,但我可能希望它也接受 object[][] 和 object[][][] 等,然后方法/函数可以在内部变平,所以用户在调用此函数之前不需要这样做。

所以...

是否可以编写一个函数来接受一种对象的各种级别的列表类型? 作为一个附带问题,在设计类的接口时,接受object[]orIEnumerable<object>或哪个更好params object[](编辑:从这个问题中脱颖而出,因为已经有足够的事情发生了。)

例如,我正在考虑一个函数,它同时接受/全部object[], IEumerable<object>,并可能进一步嵌套,例如:IEnumerable<IEnumerable<object>>, object[][](以及 on、on 和 on 等)。

这可能吗?

0 投票
1 回答
52 浏览

visual-studio-2010 - 复制列表中的对象

我的第一个问题时间到了!我想让大家知道我对编程非常业余,而且我可能并不完全理解我将要使用的术语。

我正在制作一个程序,该程序从 Oracle 查询中获取结果并将它们显示在 DataGridView 中以进行操作。数据将与拼版软件一起使用,我需要能够“拆分”和“连接”行以进行复制。

数据来自我的服务层,作为一个名为 CheckOrderLine 的通用集合,其中包含 20 多个包含所有提取数据的对象。

我正在寻找一种方法来从我的绑定源 _bs 中获取当前的 CheckOrderLine,并使用所有相同的值创建一个新的 CheckOrderLine。我相信这被称为深拷贝。

我了解到我可以使用以下代码来实现我的目标,但我确信有更好的方法来做到这一点:

等等。

所以我想我的问题是:有没有办法遍历 CheckOrderLine 并为我的新对象中的每个属性设置值?另外,我前进的方向有什么可怕的错误吗?我在 Web 上看到过有关在我的 CheckOrderLine 类中使用 ICloneable 的事情,但现在这超出了我的想象。

编辑:有错误的 VS 标签。我修正了一些词汇。

0 投票
3 回答
3938 浏览

c# - 如何将项目添加到通用集合?

鉴于:

exceptc不是类型<T>

那么如何将项目添加到通用集合中?


尝试过

但我不使用它,因为没有人可以打电话DoStuff

因为一些关于协方差的东西,而.NET 没有意识到它Customer来自Human