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

c# - 创建 IEnumerable 的最简单和最紧凑的方法是什么或 ICollection?

因此,很多时候我们都有一个接受 IEnumerable 或 ICollection 作为参数的函数。如果我们有单个项目,但没有集合来保存它们,我们必须在将它们传递给函数之前创建一个集合,例如:

我总是创建一个数组或列表,就像我在上一个示例中所做的那样。但我想知道,有没有更优雅的方法来创建所需的 IEnumerable 或 ICollection?

如果有人能做到这一点,那就太酷了:

并且编译器将创建满足 IEnumerable 或 ICollection 需求的最抽象的可能集合(取决于函数接受哪一个)。

无论如何,如何将 o1、o2 和 o3 传递给 IEnumerable 或 ICollection 参数?

0 投票
2 回答
2118 浏览

c# - ICollection / ICollection歧义问题

只想对语法 sygar进行简单的扩展:

当我处理一些收藏时,它工作得很好,但是当我和其他人一起工作时,我得到了

以下方法或属性之间的调用不明确:“PowerOn.ExtensionsBasic.IsNotEmpty(System.Collections.IList)”和“PowerOn.ExtensionsBasic.IsNotEmpty(System.Collections.Generic.ICollection)”

这个问题有什么规范的解决方案吗?

不,我不想在调用此方法之前执行强制转换;)

0 投票
2 回答
2313 浏览

c# - ICollection 与 ICollection- ICollection 之间的歧义.Count 和 ICollection.Count

注意:这与其他问题相似,但并不完全相同

我已经实现了一个IBusinessCollection接口。它来自两者ICollection<T>,以及旧的非泛型ICollection。我宁愿只转储旧的 busted ICollection,但我正在使用带有 CollectionView 的 WPF 数据绑定,它希望我实现旧的 busted 非泛型IList:-(

无论如何,接口看起来像这样:

由于使用依赖注入,我IBusinessCollection<T>使用它们的接口而不是具体类型传递类型的对象,所以我有这样的东西:

当我尝试调用此代码时,出现错误,如下所示:

有 3 种方法可以编译,但都很难看。

  1. 将类转换为它的具体实现(我可能不知道)

  2. 将类显式转换为ICollection

  3. 将类显式转换为ICollection<T>

是否有第四个选项根本不需要我投射东西?我可以做任何我需要的改变IBusinessCollection<T>

0 投票
3 回答
9612 浏览

c# - 在 C# 中以良好格式将 ICollection 转换为字符串

我有一个清单:

如果想获得我的列表的字符串表示。但是代码list.ToString()返回"System.Collections.Generic.List'1[System.Int32]"

我正在寻找这样的标准方法:

并得到"[1, 2, 3, 4, 5]"

是否有标准的 .NET 方法以良好的字符串格式表示 ICollection?

0 投票
4 回答
7560 浏览

c# - T 上课?添加范围 ICollection?

我尝试做静态类,添加到 collection 但我遇到了一些我似乎无法克服的问题。这就是我得到的方法,所以我可以在方法中传递一个 ICollection?原因T就是说不能解决。

然后我想知道有没有办法在 collection 上做 AddRange?

我在想这样的事情,但也许我已经疯了?

0 投票
7 回答
38152 浏览

c# - 为什么 ICollection 索引在实例化时不起作用?

当我们将参数声明为 ICollection 并将对象实例化为 List 时,为什么我们不能检索索引?IE

然后,这将不起作用:

我缺少什么?
[是的,我们可以使用 List 作为声明,它可以工作,但我不想声明为列表,例如:

]

0 投票
2 回答
680 浏览

collections - 是否可以在 IEnumerable 上使用 Microsoft.VisualStudio.QualityTools.UnitTesting.CollectionAssert?

我有一个测试场景,我想检查两个集合是否相等。我找到了这个类Microsoft.VisualStudio.QualityTools.UnitTesting.CollectionAssert,但它只适用于ICollection<T>. 由于我正在测试 Entity Framework 的存储库,因此需要比较IObjectSet<T>s,这不会 -IObjectSet<T>不会实现ICollection<T>.

有什么方法可以使用这个类来比较集合,还是我必须创建自己的实现?(为什么微软团队不让这个类使用IEnumerable<T>,因为那是集合的“基本接口”?)

编辑:这是我的测试代码:

最后一行的CollectionAssert.AreEqual调用失败,指出索引 0 处的元素不相等。我究竟做错了什么?

0 投票
1 回答
1047 浏览

c# - 将 LinqToSql 表绑定到Repeater

我有一个从数据库中检索数据的类。

我正在通过上面的类绑定来自 db 的数据。

但结果是 IEnumerable 但我需要像 DataSet 这样的东西。我收到此错误:

无法为未实现 ICollection 的数据源计算 Count。

我找到了关于这个错误的很好的解释,它是:

底层 DataSource 必须支持 ICollection 接口才能使网格执行自动分页。ICollection 需要一个类来实现 Count 属性。ArrayList 和 DataView 都支持该接口,因此您可以将它们用作 DataSources。其他类仅支持 IEnumerable 接口。这允许它们用作数据源,但不能用作分页数据源。SqlDataReader 就是此类的一个示例。参考

但我需要将转发器与 linq 的结果绑定到 sql 表。我应该怎么办?

0 投票
1 回答
596 浏览

.net - 如何使用 CollectionAssert(和 Linq?)来查找一个属性的所有值,是否相同?

这是我今天问的一个问题的扩展......它强调了使用 CollectionAssert 来帮助测试集合(我从来不知道)。

我有一个ICollection<Foo> foos;This 有一个名为 Status 的属性,为了简单起见,它是一个 int 或 byte(无论你的船漂浮什么<--看看我在那里做了什么?!/me 隐藏)。

那么,如何使用 CollectionAssert 来查看返回的 ICollection 中的所有项目是否都具有相同的属性值?

0 投票
2 回答
92 浏览

.net - 将集合与另一个(从架构上讲)进行比较的更好方法是什么?

这是我目前最喜欢的架构方法的示例:

这种 CollectionComparer 抽象类方法是否被认为是对应用于集合的 object.Equals() 等效项进行集合比较的良好实践?