Вероятно, очень простой вопрос - если у меня есть последовательность объектов, для которых я запускаю Seq.find()
для возврата одного элемента, как мне тогда получить доступ к одному свойству, не сохраняя весь элемент как переменную?
, например
type MyType = { Id : int; Text : string }
let obs = [| { Id = 1; Text = "Hello" }; { Id = 2; Text = "Goodbye" } |] :> seq<MyType>
let getFirstText (array : seq<MyType>) =
array |> Seq.find(fun mt -> mt.Id = 1) |> .Text
^^^^^
getFirstText obs |> printfn "%s"
Это дает Неожиданный символ '.' в выражении .
Попытка Seq.find(fun mt -> mt.Id = 1).Text
дает Несоответствие ограничения типа - Тип '' a -> MyType 'несовместим с типом' MyType ' в строке 6.
Вы не можете использовать Seq.Map()
, поскольку передаваемый объект больше не является последовательностью.