问题标签 [icollection]

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 回答
5043 浏览

c# - 列表添加值时抛出空引用异常

我有一堂课:

当我调用它时:

它抛出一个异常:

0 投票
3 回答
3024 浏览

c# - 将字典作为 ICollection 返回

我有一个可以实现各种集合和数据类型的接口,它适用于某些集合但字典给我带来了问题,我猜是因为字典有点不同并且有键值对?

0 投票
3 回答
5068 浏览

c# - 为什么我在 DataSet 上收到 NullReferenceException?

我正在为我的 ShoppingCart 需要的每个项目从 Northwind 数据库打开一个数据库查询。它是从桌子上拿走ProductID的。在我从数据库中取出两列以将数据保存到. 然后我比较以确保用户输入的数量小于数据库中库存的列单位。UnitsInStockProductsDataTabel ds

theCart.Values是 ICollections 的一部分。

我遇到错误:来自我的异常消息:“连接到数据库时出现问题:对象引用未设置为对象的实例。”

这是代码。

0 投票
3 回答
23328 浏览

c# - 使用 IEnumerable、ICollection 和 IList 的自定义集合

我需要设计自己的自定义GenericCollection类。现在我有很多选项可以使用IEnumerableICollection和派生它IList,稍后会提供一些附加功能。

我有点困惑,如果我一起去,IEnumerable<T>我可能需要声明对象以实际保存集合,就像在这种情况下一样_list

但是如果我使用ICollection<T>or IList<T>,我不需要声明List对象,因为它是隐式可用的。

这两种方法在性能方面有什么区别?

在哪种情况下,每一个都是首选,尤其是在设计您自己的系列时。我对性能良好的轻量级系列感兴趣。我认为这可以通过使用来实现,IEnumerable<T>但是究竟有什么强有力的理由去使用它呢?

我已经查看了一些现有的帖子,但没有一个提供所需的信息。

返回'IList' vs 'ICollection' vs 'Collection'

0 投票
1 回答
127 浏览

c# - 为什么是 `ICollection` 类型的`IDictionary.Values` 属性?

我试图弄清楚为什么该IDictioary<TKey, TValue>.Values属性是 typeICollection<TValue>而不是IEnumerable<TValue>. 该Values属性的 .NET 实现显式地实现了接口属性,然后将该Values属性公开为类型Dictionary<TKey, TValue>.ValueCollection,当您尝试从中添加或删除值时,该类型会引发异常。

这似乎是一个完整的黑客。由于字典的性质,创建一个允许您获取字典中值的集合并从中添加/删除值的实现是否有意义?

0 投票
4 回答
100 浏览

c# - 将接口集合添加到接口

我正在尝试围绕界面进行思考。我一直在尝试这样的事情:

我完全不知道如何正确地做到这一点。填充接口集合的正确方法是什么?

编辑:我实现 Foo 的方式可能是问题的一部分。

0 投票
1 回答
955 浏览

asp.net-mvc - Asp.Net MVC 4 - 将对象模型添加到另一个对象模型中的 ICollection

一些背景

我的 Asp.Net MVC 4 数据库第一个应用程序、提交和评论中有 2 个表。(还有很多,但它们与这个问题无关)。任何给定的提交都可以有任意数量的评论(一对多)与之关联。

我有一个提交详细信息页面,用户可以在该页面上打开一个带有部分视图的 jQuery 对话框,以向提交添加评论。此部分视图绑定到为添加注释而创建的强类型视图模型。

表格/模型

提交表

这是提交表的类模型。(为简单起见,我省略了一些属性)。

评论表

这是 Comment 表的类模型。(再次,为简单起见,我省略了一些属性)。

要求

我正在尝试做的是向给定提交的已存在的评论集合中添加新评论。

至今...

到目前为止,我有一个添加注释对话框的视图模型,它在我的控制器中初始化,然后将填充的视图模型返回给控制器的 post 方法。这是代码

视图模型

视图模型生成器

控制器获取方法

控制器 Post 方法

问题

在测试上述功能时,db.SaveChanges()在 ViewModel 构建器中一直执行成功,但是一旦运行此行,执行就会停止。我不知道发生了什么,因此完全卡住了。

有谁知道A)我是否要以正确的方式添加评论?B)为什么这条线在没有任何错误的情况下停止执行?


更新

感谢 Peter Smith 建议在代码周围放置一个 Try Catch,我不知道为什么我一开始没有想到或这样做。

我现在收到以下错误:

{MySql.Data.MySqlClient.MySqlException (0x80004005): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '(SELECT" & vbLf & " Submission_Comment. Submission_ID, " & vbLf & " 附近使用的正确语法Submission_Comment。在 MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 的第 1 行" & vbCrLf & " 在 MySql.Data.MySqlClient.MySqlStream.ReadPacket()" & vbCrLf & " & vbCrLf & " 在 MySql。 Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)" & vbCrLf & " 在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)" & vbCrLf & " 在 MySql.Data.MySqlClient .MySqlDataReader.NextResult()" & vbCrLf & " 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior 行为)" & vbCrLf & " 在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()" & vbCrLf & " 在 MySql。数据.MySqlClient.MySqlCommand。2 identifierValues, List1 generateValues)" & vbCrLf & " 在 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器)}

0 投票
4 回答
4367 浏览

c# - 在 C# 中设置 ICollection 属性的值

我的类继承了一个接口,所以我需要在 Person 类中有 emailaddress 属性。

我的问题是获取属性和设置属性的最佳方法是什么

本质上,我试图让班级允许不止一封电子邮件。

为了充分披露,我对此很陌生,我可能没有问正确的问题,但我已经搜索了一天半并且没有看到这样的东西(不是我认为它不寻常)并且可以使用洞察力。

电子邮件类属性:

0 投票
1 回答
1999 浏览

asp.net-mvc-3 - MVC3:将 ICollection 从视图传递到控制器

我有一个类型为 icollection 的模型。

我将包含这两个类的模型传递给我的视图,并且能够通过使用查看我的收藏中的项目foreach(var item in Model.myClass.param3)

我将这些项目存储在一个隐藏字段中以在我的控制器中检索它

但是当我提交表单并将模型传递给控制器​​时,我在调用 model.myClass.param3 时得到一个 count = 0。

如何将 ICollection 传递给我的视图?我试过这个链接,但不知道为什么它不起作用。

编辑

该链接使用类 Book 作为列表以进行索引(建议我应该将 ICollection 转换为列表)。我怎么做?另外,如果我将它转换为列表,我如何将它传递给控制器​​,因为控制器期望接收 IColletiion?

0 投票
1 回答
238 浏览

c# - 如何为 ICollection Childs 提供已删除/原始项目的“列表”

嗨,我想做类似的事情SomeCollection.GetChanges(ItemState.Deleted),结果应该是所有被删除的项目

你可以用DataTable. 但是如何在List<T>or中实现这一点ObservableCollection<T>

这个问题已经有解决方案了吗?如果不是,创建这样一个集合是否明智?

任何意见是极大的赞赏

编辑:

到目前为止,这是我的代码,我现在已经测试并修复了它,但我仍然认为可能有更好的解决方案

我仍然认为 Linq 太多了。任何改善性能的建议将不胜感激

编辑2:

我在这里找到了一个解决方案,它包含了我想要的更多但仍然比我更好的解决方案:D