我们称这样的实例为“集合”吗?一个“可枚举的”?或者是其他东西?我问我的两个主要目标是:让其他开发人员理解,而不必解释该类实现了IEnumerable。技术上正确和精确。 最佳答案 从技术上讲,我会通知开发人员它实现了IEnumerable。说任何其他信息都不够有用。任何了解IEnumerable的人都会立即了解您的类的功能。任何不了解的人都不会理解您所描述的内容。 关于c#-实现IEnumerable的类实例的技术正确术语是什么?,我们在StackOverflow上找到一个类似的问题:
我有一个IEnumerable里面有很多日期。我如何从该集合中获得最早的日期?谢谢!戴夫 最佳答案 您可以使用LINQ使用Enumerable.Min立即执行此操作.DateTimeminDate=dateCollection.Min();自DateTime工具IComparable,Enumerable.Min将使用DateTime.CompareTo找到最小值DateTime在集合中。 关于c#-从IEnumerable获取最早的日期,我们在StackOverflow上找到一个类似的
我想知道Where()到底是什么和ToList()方法在做。具体来说,我想知道Where()是否将在内存中创建一个新对象或返回一个新对象。好的,看下面的代码,假设我有一个框架日志类。publicclassLog(){publicstringLog{get;set;}publicstringCreatedByUserId{get;set;}publicstringModifiedUserId{get;set;}}在我的业务逻辑中,假设我只想要由特定用户创建或修改的日志。这将通过以下方法完成:FilterLogsAccordingToUserId().publicIEnumerableFi
dotnet是否有像IEnumerable这样带有计数属性的接口(interface)?我知道IList和ICollection等接口(interface)确实提供了Count属性,但似乎这些接口(interface)首先是为可变数据结构设计的,用作只读接口(interface)似乎是事后才想到的——存在IsReadOnly字段和mutators抛出异常当此属性为真时,IMO对此提供了充分的证据。目前我正在使用一个名为IReadOnlyCollection的自定义接口(interface)(请参阅我自己对这篇文章的回答),但我很高兴知道其他替代方法。 最佳答
有没有一种在C#中仅枚举Collection的子集的好方法?也就是说,我有一个包含大量对象(比如1000)的集合,但我只想枚举250-340个元素。有没有一种好的方法可以为集合的子集获取枚举器,而无需使用另一个集合?编辑:应该提到这是使用.NETFramework2.0。 最佳答案 尝试以下操作varcol=GetTheCollection();varsubset=col.Skip(250).Take(90);或者更一般的publicstaticIEnumerableGetRange(thisIEnumerablesource,in
为什么下面代码的Main方法中的列表list1Instance和p指向同一个集合?classPerson{publicstringFirstName=string.Empty;publicstringLastName=string.Empty;publicPerson(stringfirstName,stringlastName){this.FirstName=firstName;this.LastName=lastName;}}classList1{publicListl1=newList();publicList1(){l1.Add(newPerson("f1","l1"));l1
好的,我希望整个社区能够帮助我们解决已经持续了一段时间的职场辩论。这与定义接受或返回某种类型列表的接口(interface)有关。有几种方法可以做到这一点:publicinterfaceFoo{Bar[]Bars{get;}IEnumerableBars{get;}ICollectionBars{get;}IListBars{get;}}我自己的偏好是使用IEnumerable作为参数,使用数组作为返回值:publicinterfaceFoo{voidDo(IEnumerablebars);Bar[]Bars{get;}}我对这种方法的看法是,实现类可以直接从IEnumerable创建
我习惯于向IEnumerable等外部类添加方法。但是我们可以在C#中扩展数组吗?我计划向数组添加一种方法,将其转换为IEnumerable,即使它是多维的。与HowtoextendarraysinC#无关 最佳答案 staticclassExtension{publicstaticstringExtend(thisArrayarray){return"Yes,youcan";}}classProgram{staticvoidMain(string[]args){int[,,,]multiDimArray=newint[10,10,
我很惊讶地发现似乎没有将单个元素添加到IEnumerable集合的方法。如何将单个元素添加到IEnumerable集合? 最佳答案 您不能真正向IEnumerable添加元素,因为它应该是只读的。你最好的选择是:returnnewList(enumerable){newFoo()};或returnenumerable.Concat(new[]{newFoo()}); 关于c#-将单个元素添加到IEnumerable集合的最佳方法是什么?,我们在StackOverflow上找到一个类似的问
我正在查看System.Collections.Generic.List的开源代码.AddRange(IEnumerable)方法如下所示:publicvoidAddRange(IEnumerablecollection){Contract.Ensures(Count>=Contract.OldValue(Count));InsertRange(_size,collection);}和InsertRange(int,IEnumerable)方法看起来像这样:publicvoidInsertRange(intindex,IEnumerablecollection){if(collecti