Yes, you would use GetJobs. There is no casting to be done because it returns a collection of Job objects.
For the fastest fetch you want to use the ObjectFecthOptions.StubsOnly option as shown below. This tells the server to return only skeletal information for the job rather than the full object (which would include all its steps, conditions, triggers, etc.). If you plan to access any of those, you should do a full fetch so everything is returned.
The FullyQualifiedName property returns the job name plus the full name of the group the job is in.
using (var session = Scheduler.Connect(ServerName, LoginAuthenticationType.Windows, "", ""))
{
using (var context = session.NewDataContext())
{
bool restartPaging=false;
var jobs = context.GetJobs("*", ObjectFetchOptions.StubsOnly, 0, ref restartPaging);
foreach(var job in jobs)
{
var status=job.GetStatus(false);
var groupName=job.Group.FullyQualifiedName;
var queueName=job.Queue.Name;
Debug.WriteLine(job.FullyQualifiedName + ": " + status.StatusDescription);
}
}
}