Any time you get that "does not contain a definition" and you've copied code from somewhere that asserts it to be correct, you might be missing a using directive or a reference. Some functionality in C# is delivered by tacking it onto existing functions by extension. The library (like Flurl) contains methods that associate themselves with existing things in C#, like a Uri or a string but only if
a) you've imported the library to the project (mostly libraries these days are delvierd via nuget project manager) and added a reference (nuget package manager does it if used but if you got your library elsewhere, you might have to add a reference manually)
b) you've told C# you want to use that library in this file (putting `using ....` at the top of the file does it)
These days, Intellisense in VS tends to add missing `using`s for you, but only if you've imported the library and referenced it, otherwise VS won't know what `using` to add
It seems complicated at first but suffice to say if someone else wrote code (a library) that you want to use then you have to:
1) actually download that code
2) tell c# you want to use it in your project ("reference" it)
3) tell c# you want to use it in this particular file ("using" it)