Does using a lambda make this code more DRY?
First, yes, I do think your solution with a lambda is a good choice. But it's worth to also consider other options:


Translate the closure into an object. That would mean creating a class, with a constructor that takes url (and possibly RestCall, if it's an instance property) and stores it into a filed. It also has a method that actually does the work. Basically, this is the same as you lambda, only much more code. I think this is probably not a good solution in this case.
Go the other way around: create a Dictionary&lt;string, object&gt; (or Tuple&lt;string, object&gt;[] if order is important for you; or an array of anonymous type) with your parameters and then iterate over that:

var items = new Dictionary&lt;string, object&gt;
{
    { "access_id", 1 },
    { "affiliate_status", "approved" }
};

foreach (var item in items)
{
    if (url.Contains("[" + item.Key + "]"))
    {
        RestCall.UriVariables.Add(item.Key, item Value);
    }
};