草庐IT

ion-list

全部标签

c# - List<T> 中的最大项目数是多少?

有人知道列表中项目的最大数量是多少吗?如何增加该尺寸?或者是否有一个收集无限项的集合?(尽可能多地适合内存,也就是说)编辑:当整数列表中的Count=134217728时,出现内存不足异常。有3Gb的RAM,其中2.2正在使用中。声音正常 最佳答案 List将被限制为数组的最大值,即2GB(即使在x64中)。如果这还不够,则说明您使用了错误类型的数据存储。不过,您可以通过以正确的大小启动它来节省大量开销-通过传递int给构造函数。重新编辑-使用134217728xInt32,即512MB。请记住List使用加倍算法;如果您通过Add

c# - List<string> 和 IEnumerable<String> 有什么区别?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:What'sthedifferencebetweenIEnumerableandArray,IListandList?以上两者有什么区别?

c# - List<string> 和 IEnumerable<String> 有什么区别?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:What'sthedifferencebetweenIEnumerableandArray,IListandList?以上两者有什么区别?

C# List<> GroupBy 2 个值

我在Framework3.5上使用C#。我希望通过两个属性快速对GenericList进行分组。为了这个例子,假设我有一个订单类型的列表,其属性为CustomerId、ProductId和ProductCount。如何使用lambda表达式获取按CustomerId和ProductId分组的ProductCounts的总和? 最佳答案 varsums=Orders.GroupBy(x=>new{x.CustomerID,x.ProductID}).Select(group=>group.Sum(x=>x.ProductCount))

C# List<> GroupBy 2 个值

我在Framework3.5上使用C#。我希望通过两个属性快速对GenericList进行分组。为了这个例子,假设我有一个订单类型的列表,其属性为CustomerId、ProductId和ProductCount。如何使用lambda表达式获取按CustomerId和ProductId分组的ProductCounts的总和? 最佳答案 varsums=Orders.GroupBy(x=>new{x.CustomerID,x.ProductID}).Select(group=>group.Sum(x=>x.ProductCount))

c# - 如何在 C# 中覆盖 List<T> 的 Add 方法?

我目前正在寻找自己的收藏,这就像一个普通的list,只是它只能容纳10件元素。如果在列表中已经有10个项目时添加了一个项目,那么第一个项目将在附加新项目之前被删除。我想做的是创建一个扩展System.Collections.Generic.List的类,然后修改Add(Titem)方法来包含在必要时删除第一项的功能。 最佳答案 你也可以通过实现add方法publicnewvoidAdd(...)在您的派生类中隐藏现有添加并引入您的功能。编辑:粗略的大纲...classMyHappyList:List{publicnewvoidAdd

c# - 如何在 C# 中覆盖 List<T> 的 Add 方法?

我目前正在寻找自己的收藏,这就像一个普通的list,只是它只能容纳10件元素。如果在列表中已经有10个项目时添加了一个项目,那么第一个项目将在附加新项目之前被删除。我想做的是创建一个扩展System.Collections.Generic.List的类,然后修改Add(Titem)方法来包含在必要时删除第一项的功能。 最佳答案 你也可以通过实现add方法publicnewvoidAdd(...)在您的派生类中隐藏现有添加并引入您的功能。编辑:粗略的大纲...classMyHappyList:List{publicnewvoidAdd

c# - List、IList和IEnumerable的比较

我有一个C#应用程序,我在其中处理一些集合类型。我需要知道这些类型之间的区别是什么:ListIListIEnumerable每一个与其他的相比有什么区别? 最佳答案 IEnumerable是以下扩展或实现的基本接口(interface)。它不允许直接访问并且是只读的。因此,仅当您打算迭代集合时才使用它。ICollection延伸IEnumerable但此外还允许添加、删除、测试元素是否存在于集合中以及获取元素总数。它不允许通过索引直接访问元素。这将是一个复杂度为O(n)的操作,因为您需要开始对其进行迭代,直到找到相应的元素。ILis

c# - List、IList和IEnumerable的比较

我有一个C#应用程序,我在其中处理一些集合类型。我需要知道这些类型之间的区别是什么:ListIListIEnumerable每一个与其他的相比有什么区别? 最佳答案 IEnumerable是以下扩展或实现的基本接口(interface)。它不允许直接访问并且是只读的。因此,仅当您打算迭代集合时才使用它。ICollection延伸IEnumerable但此外还允许添加、删除、测试元素是否存在于集合中以及获取元素总数。它不允许通过索引直接访问元素。这将是一个复杂度为O(n)的操作,因为您需要开始对其进行迭代,直到找到相应的元素。ILis

c# - 如何将 List<interface> 转换为 List<concrete>?

我有一个接口(interface)定义为:publicinterfaceMyInterface{objectfoo{get;set;};}和一个实现该接口(interface)的类:publicclassMyClass:MyInterface{objectfoo{get;set;}}然后我创建一个返回ICollection的函数,如下所示:publicICollectionClasses(){Listvalue;Listlist=newList(newMyInterface[]{newMyClass{ID=1},newMyClass{ID=1},newMyClass{ID=1}});v