问题标签 [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# - DataTable to List 接线通用方法
错误 1 无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”
如何摆脱错误。而且我不想要函数的通用性。
scala - 如何在功能上将字符串映射合并到列表?
我已经建立了一个这样的抽象:
this
的地图String -> Seq[String]
需要与that
的地图合并。
这是我能想到的最好的方法:
c# - 无法将 keyValuePair 直接添加到 Dictionary
我想将 a 添加KeyValuePair<T,U>
到 a 中Dictionary<T, U>
,但我不能。我必须分别传递key和value,这意味着Add方法必须创建一个新的KeyValuePair对象来插入,效率不高。我不敢相信Add(KeyValuePair<T, U>)
Add 方法没有重载。任何人都可以提出这种明显疏忽的可能原因吗?
c# - 获取列表中特定项目的出现
我想获得一个包含该集合中所有项目的集合的特定出现,例如,获取第一次出现的所有值,比如 3 次出现。
如果我有以下代码,我将如何做到这一点?如果 i 等于 1,我只想将集合中的第一个匹配项传递给我的 ProcessForm4PDFFormFields 方法,仅使用这一次出现而不是整个集合。
因此,参数“myResult”将仅包含根据“i”是什么来传递的事件之一。
c# - 寻找在 c# 中处理通用集合的非类型特定方法
我的情况是这样的。我需要在多种不同类型的对象上运行一些验证和按摩类型代码,但是为了清洁(和代码重用),我想让这个验证的所有调用看起来基本相同,无论对象如何。我试图通过重载来解决这个问题,在我得到 Generic Collection 对象之前它工作得很好。
下面的例子应该澄清我在这里谈论的内容:
Collection<T>
这似乎是一种真正的浪费,因为我必须为每种不同的类型复制完全相同的代码。我想制作一个DoStuff
处理 any的单个实例Collection<T>
,而不是为每个实例制作一个单独的实例。
我试过使用ICollection
,但这有两个问题:第一,ICollection
不暴露.Remove
方法,我不能写foreach
循环,因为我不知道列表中对象的类型。使用更通用的东西,比如object
,不起作用,因为我没有DoStuff
接受的方法object
- 我需要它为实际对象调用适当的方法。编写一个DoStuff
方法,它需要一个object
并执行某种巨大的 if 语句列表来选择正确的方法并适当地进行转换,这违背了摆脱冗余代码的整个想法——我还不如复制和粘贴所有这些Collection<T>
方法。
我尝试过使用通用DoStuff<T>
方法,但这在foreach
循环中有同样的问题。因为我在设计时不知道对象类型,所以编译器不会让我调用DoStuff(obj)
.
从技术上讲,编译器应该能够在编译时判断需要进行哪个调用,因为这些都是私有方法,并且在调用中传递的对象的特定类型在方法被调用时都是已知的。该知识似乎并没有出现在此方法调用的后续方法中。
我真的不想在这里使用反射,因为这会使代码比复制和粘贴所有Collection<T>
方法更加复杂,并且会降低性能。有任何想法吗?
--- 编辑 1--- 我意识到我的通用方法引用没有正确显示,因为我没有使用尖括号的 html 代码。现在应该解决这个问题。
--- 编辑 2 --- 根据下面的回复,我将Collection<T>
方法更改为如下所示:
但是,这仍然不起作用,因为当我调用DoStuff(tmp[i])
.
c# - 泛型集合中的协方差
我想这样做
在别的地方
我需要在程序的不同区域访问 itemsource。我需要在没有编译时间类型信息的情况下将项目添加到列表中。转换为 IEnumerable 有效,但是因为我需要将项目添加到集合中,所以我需要的不止这些,因此尝试将其转换为集合。
怎么可能?
c# - 扩展 IEnumerable:如何返回最后一个 not string.empty 元素?
我想创建一个类 IEnumerable 的扩展方法,并创建一个方法来检索集合中不是string.empty的最后一项。集合将始终是一个数组,返回值是一个字符串。
我认为空值是一个空字符串。
我不知道如何以泛型方式做到这一点。我想知道是否应该将其设为通用方法,因为该类型将是字符串数组。
我会这样调用这个函数:
我该如何面对?
c# - 如何使用泛型集合实现自定义类型安全集合?
我使用了从类派生的强类型集合,CollectionBase
现在我想将其更改为从类型安全的泛型集合继承。有些建议继承自List<T>
,有些建议使用Collection<T>
。我想做的是:
1)我有一个自定义类,我正在创建一个仅包含该自定义类实例的集合。
2) 我有一些我希望自定义集合类具有的属性和方法。例如,它应该有一个Id
属性,或者它应该有一个IsBlahBlah()
方法。
我应该如何处理这个?当我从CollectionBase
类派生时,我使用该InnerList
属性来访问元素。如果我选择使用,我应该使用该Items
物业Collection<T>
吗?
正在做类似的事情:
正确的方式?它会在不干扰 中的方法的情况下开箱即用地正常工作Collection<T>
吗?
额外问题:当我在 Google 上搜索“强类型集合”时,它总是显示包含CollectionBase
该类的结果。强类型集合和类型安全集合有什么区别?
asp.net-mvc - 支持添加数据集合的 ASP.NET MVC 视图
我的应用程序将用于接受/编辑保修索赔。在保修索赔中,用户可以提交多个“部分”作为索赔的一部分。我的模型包含 WarrantyParts 的 IEnumerable<> - 我创建了一个包含以下内容的视图模型:
我的问题是如何构建允许用户填充保修部件集合的视图?他们可以输入一个或 100 个单独的部分;我想创建一个视图,用户可以在其中单击“添加部件”按钮,然后会出现一组新的文本框。也就是说,我想将文本框动态添加到现有视图中,而不是仅用于保修部分的单独视图。
部分视图是否符合此要求,或者我应该为零件创建单独的视图(不是我想要做的,但可能是最好的方法)?我在这里寻找最佳实践。一个例子会很棒——我喜欢视觉效果。
谢谢你!
c# - 从列表中删除多个元素
我想知道,是否有一种优雅的方法可以从通用集合(在我的情况下为 a List<T>
)中删除多个项目,而无需执行诸如在 LINQ 查询中指定谓词以查找要删除的项目之类的操作?
我正在做一些批处理,其中我正在填充需要处理的对象类型List<T>
。Record
该处理以将每个对象插入数据库而结束。我不想构建列表,然后遍历每个单独的成员并处理/插入它,而是想对N
列表中的项目组执行事务性批量插入,因为它的资源密集度较低(其中N
代表BatchSize
我可以放入配置文件, 或同等学历)。
我想做类似的事情:
我正在寻找一种方法来一次完成这一切,而不是遍历子集并以这种方式删除项目,例如:
我正在考虑使用List.RemoveRange( batchSize )
,但想先获得一些 StackOverflow 反馈 :) 您使用什么方法来最大限度地提高 C# 中批处理算法的效率?
非常感谢任何帮助/建议/提示!