问题标签 [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.
c# - 列表添加值时抛出空引用异常
我有一堂课:
当我调用它时:
它抛出一个异常:
c# - 将字典作为 ICollection 返回
我有一个可以实现各种集合和数据类型的接口,它适用于某些集合但字典给我带来了问题,我猜是因为字典有点不同并且有键值对?
c# - 为什么我在 DataSet 上收到 NullReferenceException?
我正在为我的 ShoppingCart 需要的每个项目从 Northwind 数据库打开一个数据库查询。它是从桌子上拿走ProductID
的。在我从数据库中取出两列以将数据保存到. 然后我比较以确保用户输入的数量小于数据库中库存的列单位。UnitsInStock
Products
DataTabel ds
theCart.Values
是 ICollections 的一部分。
我遇到错误:来自我的异常消息:“连接到数据库时出现问题:对象引用未设置为对象的实例。”
这是代码。
c# - 使用 IEnumerable、ICollection 和 IList 的自定义集合
我需要设计自己的自定义GenericCollection
类。现在我有很多选项可以使用IEnumerable
、ICollection
和派生它IList
,稍后会提供一些附加功能。
我有点困惑,如果我一起去,IEnumerable<T>
我可能需要声明对象以实际保存集合,就像在这种情况下一样_list
。
但是如果我使用ICollection<T>
or IList<T>
,我不需要声明List
对象,因为它是隐式可用的。
这两种方法在性能方面有什么区别?
在哪种情况下,每一个都是首选,尤其是在设计您自己的系列时。我对性能良好的轻量级系列感兴趣。我认为这可以通过使用来实现,IEnumerable<T>
但是究竟有什么强有力的理由去使用它呢?
我已经查看了一些现有的帖子,但没有一个提供所需的信息。
c# - 为什么是 `ICollection` 类型的`IDictionary.Values` 属性?
我试图弄清楚为什么该IDictioary<TKey, TValue>.Values
属性是 typeICollection<TValue>
而不是IEnumerable<TValue>
. 该Values
属性的 .NET 实现显式地实现了接口属性,然后将该Values
属性公开为类型Dictionary<TKey, TValue>.ValueCollection
,当您尝试从中添加或删除值时,该类型会引发异常。
这似乎是一个完整的黑客。由于字典的性质,创建一个允许您获取字典中值的集合并从中添加/删除值的实现是否有意义?
c# - 将接口集合添加到接口
我正在尝试围绕界面进行思考。我一直在尝试这样的事情:
我完全不知道如何正确地做到这一点。填充接口集合的正确方法是什么?
编辑:我实现 Foo 的方式可能是问题的一部分。
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, List
1 generateValues)" & vbCrLf & " 在 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器)}
c# - 在 C# 中设置 ICollection 属性的值
我的类继承了一个接口,所以我需要在 Person 类中有 emailaddress 属性。
我的问题是获取属性和设置属性的最佳方法是什么
本质上,我试图让班级允许不止一封电子邮件。
为了充分披露,我对此很陌生,我可能没有问正确的问题,但我已经搜索了一天半并且没有看到这样的东西(不是我认为它不寻常)并且可以使用洞察力。
电子邮件类属性:
asp.net-mvc-3 - MVC3:将 ICollection 从视图传递到控制器
我有一个类型为 icollection 的模型。
我将包含这两个类的模型传递给我的视图,并且能够通过使用查看我的收藏中的项目foreach(var item in Model.myClass.param3)
我将这些项目存储在一个隐藏字段中以在我的控制器中检索它
但是当我提交表单并将模型传递给控制器时,我在调用 model.myClass.param3 时得到一个 count = 0。
如何将 ICollection 传递给我的视图?我试过这个链接,但不知道为什么它不起作用。
编辑
该链接使用类 Book 作为列表以进行索引(建议我应该将 ICollection 转换为列表)。我怎么做?另外,如果我将它转换为列表,我如何将它传递给控制器,因为控制器期望接收 IColletiion?
c# - 如何为 ICollection Childs 提供已删除/原始项目的“列表”
嗨,我想做类似的事情SomeCollection.GetChanges(ItemState.Deleted)
,结果应该是所有被删除的项目
你可以用DataTable
. 但是如何在List<T>
or中实现这一点ObservableCollection<T>
?
这个问题已经有解决方案了吗?如果不是,创建这样一个集合是否明智?
任何意见是极大的赞赏
编辑:
到目前为止,这是我的代码,我现在已经测试并修复了它,但我仍然认为可能有更好的解决方案
我仍然认为 Linq 太多了。任何改善性能的建议将不胜感激
编辑2:
我在这里找到了一个解决方案,它包含了我想要的更多但仍然比我更好的解决方案:D