草庐IT

ienumerator

全部标签

c# - 实现 IEnumerable 的类实例的技术正确术语是什么?

我们称这样的实例为“集合”吗?一个“可枚举的”?或者是其他东西?我问我的两个主要目标是:让其他开发人员理解,而不必解释该类实现了IEnumerable。技术上正确和精确。 最佳答案 从技术上讲,我会通知开发人员它实现了IEnumerable。说任何其他信息都不够有用。任何了解IEnumerable的人都会立即了解您的类的功能。任何不了解的人都不会理解您所描述的内容。 关于c#-实现IEnumerable的类实例的技术正确术语是什么?,我们在StackOverflow上找到一个类似的问题:

c# - 从 IEnumerable<DateTime> 获取最早的日期

我有一个IEnumerable里面有很多日期。我如何从该集合中获得最早的日期?谢谢!戴夫 最佳答案 您可以使用LINQ使用Enumerable.Min立即执行此操作.DateTimeminDate=dateCollection.Min();自DateTime工具IComparable,Enumerable.Min将使用DateTime.CompareTo找到最小值DateTime在集合中。 关于c#-从IEnumerable获取最早的日期,我们在StackOverflow上找到一个类似的

c# - IEnumerable Where() 和 ToList() - 它们的实际作用是什么?

我想知道Where()到底是什么和ToList()方法在做。具体来说,我想知道Where()是否将在内存中创建一个新对象或返回一个新对象。好的,看下面的代码,假设我有一个框架日志类。publicclassLog(){publicstringLog{get;set;}publicstringCreatedByUserId{get;set;}publicstringModifiedUserId{get;set;}}在我的业务逻辑中,假设我只想要由特定用户创建或修改的日志。这将通过以下方法完成:FilterLogsAccordingToUserId().publicIEnumerableFi

c# - dot net 是否有像 IEnumerable 这样带有 Count 属性的接口(interface)?

dotnet是否有像IEnumerable这样带有计数属性的接口(interface)?我知道IList和ICollection等接口(interface)确实提供了Count属性,但似乎这些接口(interface)首先是为可变数据结构设计的,用作只读接口(interface)似乎是事后才想到的——存在IsReadOnly字段和mutators抛出异常当此属性为真时,IMO对此提供了充分的证据。目前我正在使用一个名为IReadOnlyCollection的自定义接口(interface)(请参阅我自己对这篇文章的回答),但我很高兴知道其他替代方法。 最佳答

c# - 如何使 IEnumerable<T> 只读?

为什么下面代码的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

c# - 对于接口(interface) : T[], IEnumerable<T>、IList<T> 或其他接口(interface),您更喜欢哪个?

好的,我希望整个社区能够帮助我们解决已经持续了一段时间的职场辩论。这与定义接受或返回某种类型列表的接口(interface)有关。有几种方法可以做到这一点:publicinterfaceFoo{Bar[]Bars{get;}IEnumerableBars{get;}ICollectionBars{get;}IListBars{get;}}我自己的偏好是使用IEnumerable作为参数,使用数组作为返回值:publicinterfaceFoo{voidDo(IEnumerablebars);Bar[]Bars{get;}}我对这种方法的看法是,实现类可以直接从IEnumerable创建

c# - 将单个元素添加到 IEnumerable 集合的最佳方法是什么?

我很惊讶地发现似乎没有将单个元素添加到IEnumerable集合的方法。如何将单个元素添加到IEnumerable集合? 最佳答案 您不能真正向IEnumerable添加元素,因为它应该是只读的。你最好的选择是:returnnewList(enumerable){newFoo()};或returnenumerable.Concat(new[]{newFoo()}); 关于c#-将单个元素添加到IEnumerable集合的最佳方法是什么?,我们在StackOverflow上找到一个类似的问

c# - 为什么要在 List<T>.AddRange(IEnumerable<T>) 中添加额外的副本?

我正在查看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

c# - DebuggerStepThrough 是否可以继承到自动生成的 IEnumerable 实现中?

DebuggerStepThrough属性允许您跳过进入某些方法/类/属性的步骤。在DebuggerStepThroughbeingignored澄清了c#编译器不会将此属性继承到编译器生成的IEnumerable执行。这种失败的一个简单例子是:staticvoidMain(string[]args){vara=SkipMe().ToList();}[System.Diagnostics.DebuggerStepThrough]staticIEnumerableSkipMe(){//commentoutlinebelowandthethrowwillbesteppedover.yiel

c# - 为 EntitySet<T>、IQueryable<T> 和 IEnumerable<T> 创建可重用谓词

在我的LINQtoSQL设置中,我有各种表,这些表映射到基本上支持相同接口(interface)以支持版本控制的类,即publicinterfaceIValid{int?validTo{get;}intvalidFrom{get;}}LINQtoSQL类派生自此接口(interface),如下所示:publicpartialclassrepresentationRevision:IValid{}现在我想定义一种DRY(不要重复自己)过滤方式EntitySet,IEnumerable和IQueryable以便生成的列表对特定修订版有效。我试过这样做:publicstaticclassEx