问题标签 [ienumerable]

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 回答
5608 浏览

ienumerable - IEnumerable提供了两个 GetEnumerator 方法——它们之间有什么区别?

当我实现IEnumerable<T>接口时,我看到两种GetEnumerator方法:一种返回IEnumerator,另一种IEnumerator<T>。我什么时候会使用一个或另一个?

0 投票
4 回答
1598 浏览

.net - 存储字符串列表的最佳数据类型?

在 .NET 中,您使用哪种数据类型来存储字符串列表?

目前我正在使用List(Of String)它,因为它比Array管理和添加/删除东西更容易。我试图了解其他选项是什么,它们何时变得方便以及何时应该避免List(Of String)使用。

你用其他类型吗?为什么和何时?

0 投票
3 回答
150 浏览

c# - 传入到 GetEnum 的方法叫做

我正在使用一个 API,它有一个返回的对象IEnumerable<T>,所以类似于 Object.GetEnum<T>.

我有一个方法,其中将调用 GetEnum,但我想向方法的参数添加传递参数类型的能力。所以例如我想做:

所以如上所述我不知道myMethod中的参数类型应该是什么,也不知道如何编写获取枚举器的代码。我尝试传递“apiClass”,即 apiClass1 和 apiClass2 继承自的类。但是后来被困在那里做什么......而且我认为无论如何这都行不通。

所以我不确定我是否只是不知道如何在 C# 中做到这一点,或者是否有可能,......。或者我在 API 中遗漏了一些东西(或者 API 遗漏了一些东西来促进这一点)。

谢谢 FKC

0 投票
14 回答
16723 浏览

c# - C# 或滑动窗口枚举器中的成对迭代

如果我有一个像这样的 IEnumerable:

我想遍历所有成对的连续项目(大小为 2 的滑动窗口)。这将是

我的解决方案是这样

当我编写这段代码时,我想知道 .NET 框架中是否已经有函数可以做同样的事情,而且不仅适用于对,而且适用于任何大小的元组。恕我直言,应该有一种很好的方法来执行这种滑动窗口操作。

我使用 C# 2.0,我可以想象使用 C# 3.0(w/LINQ)有更多(更好)的方法可以做到这一点,但我主要对 C# 2.0 解决方案感兴趣。不过,我也会欣赏 C# 3.0 解决方案。

0 投票
2 回答
491 浏览

c# - C#接口问题

将对象传递给实现特定接口的函数是否有成本,而该函数只接受该接口?像:

我通过了:

它们都实现了 IEnumerable。但是,当您将其中任何一个传递给 Change 方法时,它们是否会转换为 IEnumerable,因此存在转换成本以及丢失其独特方法等问题?

0 投票
1 回答
545 浏览

linq - 如何使用 LINQ 从通用列表中获取自定义对象?

为什么我在以下代码中收到以下错误?

我想如果我将自定义对象放在其类型的通用列表中,那么 IEnumerable 会得到处理吗?我还需要对此 List 做什么才能在其上使用 LINQ?

无法将类型“System.Collections.Generic.IEnumerable <TestLinq23.Customer>”隐式转换为“TestLinq23.Customer”

0 投票
4 回答
170261 浏览

c# - IEnumerator 和 IEnumerable 有什么区别?

可能重复:
任何人都可以向我解释 IEnumerable 和 IEnumerator 吗?

IEnumerator 和 IEnumerable 有什么区别?

0 投票
4 回答
3823 浏览

c# - C# 无法从 IEnumerable 转换为 IEnumerable

我最近在尝试将 AddRange(IEnumerable) 添加到列表时遇到了麻烦。可能是一个经典问题,但我还没有真正理解它。

我知道期望 List 参数的方法对 List 不满意,因为它们可能会尝试将 Base 添加到 List 中,这显然是不可能的。

但是,如果我正确理解了这一点,因为 IEnumerables 本身无法更改,它应该在这种情况下工作。

我想到的代码是这样的:

我试图在 AddRange2 方法中向编译器传递一个提示,但这只是解决了问题。

我的思维方式有问题吗?这是语言的限制还是设计使然?

IIRC,对这种操作的支持已添加到 Java 1.5,所以也许它会在将来的某个时候添加到 C#...?

0 投票
2 回答
3781 浏览

c# - 校长搜索结果, Lambda 表达式

我正在尝试principalcollection使用我认为所谓的 lambda 表达式从 a 中过滤掉实体。

我不能让它工作,我没有得到任何结果。 user.GetGroups()返回用户是成员的所有组,但user.GetGroups().Where(....)不返回任何内容。

假设 userprincipal user = Administrator
假设 MyFilterString = "Exchange"
假设 Administrator 是以下组的成员:

域管理员架构管理员

我期望 memberOfGroups 现在应该包含 2 个组:

但它最终是空的,拉链为零,nada。非常感谢您的帮助。

西蒙·O·奥尔森

0 投票
2 回答
1644 浏览

delphi - IEnumerable.GetEnumerator() 在 Delphi 6 中返回 IEnumVariant

我通过 COM 在 Delphi 6 中使用 .Net2.0 程序集。接口之一中的方法之一返回 IEnumerable。只要我导入位于的 mscorlib.tlb

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"

,我可以在 Delphi 6 中同时访问 IEnumerable 和 IEnumerator 接口。这是在 mscorlib_TLB.pas 中定义 IEnumerable 的部分:

GetEnumerator 方法的返回值不是 IEnumerator,当我尝试将其强制转换为 IEnumerator 时,会抛出“不支持接口”异常。

有没有人遇到过这个或类似的问题?如何解决?