jjzjj

icollection

全部标签

c# - 为什么 ArrayList 实现 IList、ICollection、IEnumerable?

ArrayList声明它实现了IList、ICollection和IEnumeralbe接口(interface)。为什么不只实现IList,因为IList也是从ICollection派生的,而ICollection是从ICollection派生的IEnumerable.这种声明的目的是什么?.NETBCL中有很多这样的情况。 最佳答案 没有有效的区别。我相信额外的声明是为了清楚起见。在Reflector中检查时,在代码中实现IList的类与在代码中声明实现所有Ilist、ICollection和IEnumerable。

c# - IList 必须是有限的吗?

必须是.NET的IList是有限的?假设我写了一个类FibonacciList实现IList属性Item[n]返回第n个斐波那契数。属性IsReadOnly返回true。我们可以很容易地实现IndexOf和Contains方法,因为Fibonacci数列是递增的-要测试数字m是否是Fibonacci,我们只需要计算直到m的斐波那契数列的有限序列.GetEnumerator()方法做正确的事情我们现在已经实现了除Count()之外的只读IList所需的所有方法。这很酷,还是对IList的滥用?Fibonacci数很快变得不切实际(因此上面的IList)。有界无限序列可能更明智,它可以实现

c# - 添加到 ICollection

我目前正在编写一个C#项目,我需要对该项目进行单元测试。对于我需要进行单元测试的方法之一,我使用了一个ICollection,它通常由列表框中的选定项填充。当我为它创建行的方法创建单元测试时ICollectionicollection=null;//Initialisetoanappropriatevalue如何创建此ICollection的实例和集合的项目? 最佳答案 ICollection是接口(interface),不能直接实例化。您需要实例化一个实现ICollection的类;例如,List.此外,ICollectionin

c# - ICollection<string> 到 string[]

我有一个ICollection类型的对象.转换为string[]的最佳方式是什么?.如何在.NET2中完成此操作?如何在更高版本的C#中更清晰地完成此操作,或许在C#3中使用LINQ? 最佳答案 您可以使用以下代码片段将其转换为普通数组:string[]array=newstring[collection.Count];collection.CopyTo(array,0);这应该可以完成工作:) 关于c#-ICollection到string[],我们在StackOverflow上找到一

c# - c#中list<>和dictionary<>有什么区别

我对c#中的列表和字典有一个奇怪的疑问在列表中,我们使用以下方法将项目添加到列表usingSystem.Collections.Generic;classProgram{staticvoidMain(){Listlist=newList();list.Add(2);list.Add(3);list.Add(5);list.Add(7);}}在字典中我们添加这样的项目......usingSystem;usingSystem.Collections.Generic;classProgram{staticvoidMain(){Dictionaryd=newDictionary();d.Ad

c# - 如何在 Powershell 中为实现 IDictionary 和 ICollection 的类的实例设置属性

我正在尝试使用ADO.NETSQLite数据提供程序库中的SQLiteConnectionStringBuilder类,找到here.类定义有一个名为DataSource的属性。publicsealedclassSQLiteConnectionStringBuilder:DbConnectionStringBuilder{publicSQLiteConnectionStringBuilder();publicSQLiteConnectionStringBuilder(stringconnectionString);publicstringDataSource{get;set;}}我试图

c# - 如何在 Powershell 中为实现 IDictionary 和 ICollection 的类的实例设置属性

我正在尝试使用ADO.NETSQLite数据提供程序库中的SQLiteConnectionStringBuilder类,找到here.类定义有一个名为DataSource的属性。publicsealedclassSQLiteConnectionStringBuilder:DbConnectionStringBuilder{publicSQLiteConnectionStringBuilder();publicSQLiteConnectionStringBuilder(stringconnectionString);publicstringDataSource{get;set;}}我试图

c# - 为什么 ConcurrentBag<T> 不实现 ICollection<T>?

我有一个方法接受IList并向其添加内容。我想把它传给ConcurrentBag在某些情况下,但它不实现IList或ICollection,仅实现非通用ICollection,它没有Add方法。现在,我明白了为什么它不能(也许)实现IList-它不是一个有序的集合,所以它没有索引器。但我没有发现任何ICollection的问题。方法。那么,为什么?而且,还有-.NET中是否有一个线程安全的集合可以实现更强大的接口(interface)? 最佳答案 AList不是并发的,所以它可以实现ICollection这给了你一对方法Contai

c# - 为什么 ConcurrentBag<T> 不实现 ICollection<T>?

我有一个方法接受IList并向其添加内容。我想把它传给ConcurrentBag在某些情况下,但它不实现IList或ICollection,仅实现非通用ICollection,它没有Add方法。现在,我明白了为什么它不能(也许)实现IList-它不是一个有序的集合,所以它没有索引器。但我没有发现任何ICollection的问题。方法。那么,为什么?而且,还有-.NET中是否有一个线程安全的集合可以实现更强大的接口(interface)? 最佳答案 AList不是并发的,所以它可以实现ICollection这给了你一对方法Contai

c# - 无法比较类型为 'System.Collections.Generic.ICollection`的元素 1 只支持原始类型、枚举类型和实体类型

这段代码是我写的IQueryablesites=context.MainTable.Include("RelatedTable");if(!string.IsNullOrEmpty(param1)){sites=sites.Where(s=>s.RelatedTable!=null&&s.RelatedTable.Any(p=>p.Name==param1.ToLower()&&p.PolicyType=="primary"));}foreach(stringsecondaryPolicyinsecondaryPolicies){sites=sites.Where(s=>s.Relat