|
|
1
20
如果您使用的是C 3.0(VS2008),那么linq to对象可以执行非常类似的操作:
|
|
|
2
14
Matt提到了查询表达式。顺便说一句,它们一般可用于LINQ,而不仅仅是对象的LINQ。(例如,应用于Linq to SQL DataContext的同一查询将在数据库上执行筛选和投影。) 尽管查询表达式通常最终会调用 extension methods . (它们不必这样做,编译器也不在乎,但它们通常会这样做。)可以对集合执行各种操作,这些集合在C查询表达式中不可用,但由方法调用支持,因此值得注意这两种语法。例如,Matt的查询表达式:
“预处理”到:
如果要基于原始集合中值的索引进行筛选,可以使用 appropriate overload of Where 通过查询表达式不可用:
或者您可以找到与条件匹配的最长名称的长度:
(你不
有
在不同的方法中进行投影和最大值-有一个
我的观点是,使用扩展方法可以非常容易地构建复杂的查询。 您也提到了python生成器-c的形式是 iterator blocks . 实际上,这些在实现类LINQ操作符时非常有用。(因为大多数linq to对象都基于扩展方法,所以您可以添加自己的操作符,这些操作符看起来像linq的“本机”操作符,尽管您自己不能更改查询表达式语法。) |
|
|
3
5
在python中,一个简单的列表理解示例:
对于C 3.0,可以传递一个lambda函数,指定需要什么类型的映射函数。
对于C 2.0,可以使用匿名方法
(注意:数组也可以使用
|
|
4
1
有这样的:
只比它的python等价物稍长一点:
然后就是这样:
python相当于:
|
|
|
5
0
我知道这是一个非常晚的答案,但我也很想知道C是否有类似于Python列表理解的东西。两者的答案 Matt Campbell 和 Jon Skeet 展示如何 提取液 据我所知,是另一份现有清单。但是,Python的列表理解也可以从头开始创建列表。这就是我的想法。 首先,我将展示python列表的理解,然后是我想出的C等价物。 玩具的任务是创建这样的字符串
python列表理解:
C相当于我想出了:
不过,我不确定我是否做得过火了。 编辑: (从乔恩·斯基特在他的评论中提到的,一个真正的一行程序,相当于python的列表理解)
注意
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |