Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala最短等价于c#LINQ_C#_Linq_Scala_Loops_Collections - Fatal编程技术网

Scala最短等价于c#LINQ

Scala最短等价于c#LINQ,c#,linq,scala,loops,collections,C#,Linq,Scala,Loops,Collections,我需要在scala中创建一组新对象 以下C代码的最短等效值是什么 这有什么问题吗 val persons: List[Person] = (1 to n) map (new Person(_)) 使用: 或者像李建议的那样: (1 to n).map(new Person(_)).toList 调用toList是必需的,因为(1到n).map(new Person())会生成一个IndexedSeq[Person]。还要注意的是1到n的类型是,并且它与List.range(1,n+1)的类型

我需要在scala中创建一组新对象 以下C代码的最短等效值是什么

这有什么问题吗

val persons: List[Person] = (1 to n) map (new Person(_))
使用:

或者像李建议的那样:

(1 to n).map(new Person(_)).toList

调用
toList
是必需的,因为
(1到n).map(new Person())会生成一个
IndexedSeq[Person]
。还要注意的是
1到n
的类型是,并且它与
List.range(1,n+1)
的类型不同,后者是
List[Int]

您只需要在末尾添加一个
toList
。噢,谢谢您,我的愚蠢。有scala的重拾器吗?月食没有说much@python_kaa不,在IntelliJ IDEA中甚至没有类似于R#@om nom nom的东西?我被R#宠坏了……它真的必须是一个
列表吗?您的方法本身为您提供了一个
Seq[Person]
(使用
向量实现),如果不是更好的话,对于大多数情况下都应该是好的
Enumerable.Range
的第二个参数是一个计数,因此您需要使用
List.Range(1,n+1)
@FrankS.Thomas谢谢。在scala中是否通常使用点而不仅仅是空间?
(1到n)
List.range(1,n+1)
之间的区别是什么?@python\u kaa List.range用于需要特定集合,如List、seq或iterator(因此将有List.range、seq.range、iterator.range等)。这些函数不仅限于范围:如果您不限于基数1,您可以使用更短的形式:
List.tablate(n)(newperson()))
。注意还有一种更为常见的方法。fill用于稍微不同的purpouse(仅N个事物,不使用索引)。(1到n)是一种通用形式,通常与map、foreach操作一起使用,然后转换为所需的集合(如.toList、toArray)。@python_kaa
(1到n)
更常用,只是因为不是每个人都知道收藏methods@python_kaa关于方法调用的点或空格:这是个人风格的问题。在大多数情况下,我喜欢使用点,因为在哪个对象上调用mehotd更清晰。
List.range(1, n + 1).map(new Person(_))
(1 to n).map(new Person(_)).toList