Hei*_*bug 2 c# syntax foreach f# list
我有一个List<List<int>>F#.我需要遍历它来寻找给定的值val.在C#中我会做类似的事情:
public bool contains(List<List<int>> list, int value)
foreach (l in list ){
foreach(val in l){
if (val == value)
return true; //found value
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找F#中的等价物.我尝试了以下但是我做错了,因为我还不习惯F#语法:
type foo =
{
l : List<List<float>>
}
let contains (value: float) : bool =
for row in foo.l do
for val in row do
if (val == value)
true
false
Run Code Online (Sandbox Code Playgroud)
上面的代码是错误的.
谁能建议我如何实现这一结果?
另一种略有不同的方式
let contains value items =
items
|> Seq.concat
|> Seq.exists ((=) value)
Run Code Online (Sandbox Code Playgroud)
或者,更简洁
let contains value =
Seq.concat >> Seq.exists ((=) value)
Run Code Online (Sandbox Code Playgroud)