问题标签 [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 投票
10 回答
19624 浏览

c# - 收藏已修改;从 LIstBox 中删除 ListItem 时,枚举可能不会执行错误

我有两个 ListBox,lstAvailableColors 和 lstSelectedColors。每个列表框之间有两个按钮,添加和删除。当在 lstAvailableColors 中选择一种或多种颜色并单击“添加”按钮时,我想将它们从 lstAvailableColors 中删除并在 lstSelectedColors 中显示它们。此外,如果在 lstSelectedColors 中选择了颜色并单击了“删除”按钮,我想从 lstSelectedColors 中删除颜色并将它们添加回 lstAvailableColors。当我这样做时,我在删除项目时收到以下错误:

收藏已修改;枚举操作可能无法执行。

这是添加按钮和删除按钮的代码:

添加:

消除:

0 投票
1 回答
1486 浏览

c# - linq 中的“选择新”是否会触发评估/加载?

我目前正在尝试创建一个实现的类,IEnumerable<T>以便从通过 ParentId 属性相互引用的对象的平面列表构造层次结构。我想为此编写一个流畅的界面,这样我就可以做这样的事情

所以,关于 yield 语句,我想知道我是否可以在课堂上做这样的事情NodeHierarchy : IEnumerable<TabNode>

或者我是否必须做这样的事情:

0 投票
2 回答
1991 浏览

.net - 在 C++ 中实现 GetEnumerator

在 C# 中,我有以下类,它编译得很好:

class CustomItem { }

当我在 C++ 中尝试相同的操作时,我得到了几个编译器错误:

ref class CustomItemValue { };

来自编译器的错误消息是:

.\mc.cpp(38) : error C2556: 'System::Collections::IEnumerator ^CustomList::GetEnumerator(void)' : overloaded function differs only by return type from 'System::Collections::Generic::IEnumerator ^CustomList::GetEnumerator(void)' with [ T=CustomItem ] .\mc.cpp(36) : see declaration of 'CustomList::GetEnumerator' .\mc.cpp(38) : error C2371: 'CustomList::GetEnumerator' : redefinition; different basic types .\mc.cpp(36) : see declaration of 'CustomList::GetEnumerator'

谁能帮我这个?

0 投票
3 回答
2509 浏览

c# - LINQ 到 resx 文件?

我正在尝试构建一种方法来.resx在运行时获取给定文件中给定文本的密钥。

目前,我可以打开并读取文件(Using ResXResourceReader),但我必须使用 aforeach来查看整个文件。

这可能是一个性能问题,因为我们的一些.resx文件相当大(大约 2000 个字符串)并且我们可能经常这样做。

我想使用 LINQ to Objects 来查询这个,因为我认为该where方法是相对优化的,但是我一直无法这样做。该类ResXResourceReader有两个方法AsQueryable()GetEnumerator(),但都不允许 LINQ 针对它们的结果(因此from n in reader.AsQueryable() where失败)。

我如何针对 LINQ 提供的东西进行 LINQ ResXResourceReader,或者它是否值得花时间?

0 投票
1 回答
3055 浏览

c# - C#:是否可以返回 IOrderedEnumerable?

IOrderedEnumerable<T>是否可以在不使用OrderByorOrderByDescending方法的情况下从方法返回an IEnumerable<T>

我猜也许不是……但是……也许我错了?


原因:主要是好奇。当我在返回数字中的数字时做出这个答案时,这让我很受打击。我的方法将根据给定数字中的权重以升序返回数字。因此,我认为如果它们以一种框架也可以识别为有序的方式排列出来会很好。当然,我们可以争辩说,从一个共同的数字的角度来看,它们不是有序的。但是,是的......如果他们应该或不应该不是这里的重点。只要有可能。

我想我也是在暗示一个问题(或者至少现在是),如果 anIOrderedEnumerable<T>不仅仅是IEnumerable<T>具有不同名称的 an。它是否包含更多内容?我知道它有ThenByandThenByDescending方法,但是它们是否使用了内部的任何东西IOrderedEnumerable<T>,或者只是直接在 an 上使用它们没有意义IEnumerable<T>

0 投票
3 回答
609 浏览

.net - 如何使我的 Linq to Sql 类 IEnumerable

如何在 C# 3.0 中使我的 Linq to Sql 类 IEnumerable 或对象 IEnumerable

0 投票
3 回答
132 浏览

c# - 如何使用 LINQ 将 long 的枚举转换为单个字符串

我想知道是否有一种简单而干净的方法(一行)用LINQ将long(IEnumerable)的枚举转换为单个字符串(string)?

谢谢

0 投票
2 回答
140 浏览

c# - 有没有办法在 C# 中对 2 个 IEnumerable 中的每个元素对进行 foreach?

我可以将它们转换为列表并使用带有索引的常规 for 循环,但我想知道是否有办法将它们保持为 IEnumerables。

0 投票
4 回答
4434 浏览

c# - 更快的枚举:利用数组枚举

所以,我有一个里面有一个数组的类。目前,我枚举类项目的策略是使用代码foreach (item x in classInstance.InsideArray). 我更愿意使用foreach (item x in classInstance)并将数组设为私有。我主要担心的是我真的需要避免任何缓慢的事情。数组受到很多打击(并且有几百个项目)。枚举这个数组很便宜是至关重要的。一个想法是让类实现IEnumerable<item>,但InsideArray.getEnumerator()只给我一个非泛型枚举器。我也尝试实现IEnumerable接口。这很有效,但速度很慢,可能是因为拳击。

有没有办法让类本身可枚举而不会影响性能?

普通代码:

调整后的慢得多的代码:

注意:为非泛型迭代器添加一个实现是可能的,并且比我的慢速解决方案更快,但它仍然比直接使用数组差一些。我希望有一种方法可以以某种方式告诉 C#,“嘿,当我要求你迭代这个对象时,迭代它的数组,同样快,”但显然这不太可能......至少从建议的答案来看迄今。

0 投票
6 回答
14379 浏览

vb.net - 我可以在 VB.NET 中为 IEnumerable 函数实现收益返回吗?

可能的重复:
VB.NET 中的 Yield

在 C# 中,当编写一个返回 的函数时IEnumerble<>,您可以使用它yield return来返回枚举的单个项目并yield break;表示没有剩余项目。做同样事情的 VB.NET 语法是什么?

来自NerdDinner代码的示例:

将 C# 转换为 VB.NET 工具会给出“不支持 YieldStatement”错误。