If you walk the SNMP tree you will notice the iControl calls match it. To me this means that iControl was built on or like the SNMP output. This is why there really isnt single selct items and why its not really OOP in general.
That said, while get_list is always a full list, the attributes can be pulled with a partial list. We tend to pull in all the WIPs once or twice a day and then make status calls with a partial list.
public static void GetWIPS(string server)
{
// get list of wips every 12 hours
var conn = new Interfaces(server, Definition.Instance.Username, Definition.Instance.Password);
var wips = conn.GlobalLBWideIP.get_list();
Save(wips); // save to database
}
public static void GetStatus(string server, string pattern)
{
// get wip status on demand
var wips = Load();
wips = wips.Where(x => x.Contains(pattern)).ToArray();
var conn = new Interfaces(server, Definition.Instance.Username, Definition.Instance.Password);
var status = conn.GlobalLBWideIP.get_object_status(wips);
}