![]() |
1
7
我也做过类似的事情。但我希望它更简单:
附加: 阵列版本:
附加: Linq版本(不是C#2.0)。如前所述,它不会在无限序列上工作,并且比备选方案慢得多:
|
![]() |
2
12
|
![]() |
3
7
使用
抱怨“过早的优化”你想要的一切,但那只是可笑的。
(我已经删除了原来的内容,因为OP在发布问题后的改进使我在这里的建议变得多余。) |
![]() |
4
2
让我们看看你是否需要切片的复杂性。
每次呼叫
每次迭代时都有一个特定的值,这是行不通的。您只需为每组获得相同的10个值。因此,您可以使用:
这将维护生成器的实例,以便您可以继续检索值,而无需重新设定生成器的种子。 |
![]() |
5
1
|
![]() |
6
1
看来我们更喜欢
在这种情况下是可行的,但是
印刷品
而不是
|
![]() |
7
0
|
![]() |
8
0
一种可能更好的方法是只使用Linq扩展
编辑: 该死,我一直在用下面的代码测试这个行为 注: 这不是真的正确,我把它留在这里,这样别人就不会犯同样的错误。
但是
如果你注意到我在添加
同样的,发电机使用
编辑: 我将保留最后一次编辑,这样就不会有人犯同样的错误,但这样做对我来说效果很好:
|
![]() |
9
0
我在原来的回答中犯了一些错误,但有些观点仍然有效。Skip()和Take()在生成器中的工作方式与在列表中的不同。在IEnumerable上循环并不总是没有副作用的。不管怎么说,这是我得到一个切片列表的方法。
|
![]() |
10
0
如果您只想返回块,而不想对它们做任何事情,请使用
|
![]() |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
![]() |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |