Вот что вы можете сделать, разделение происходит только один раз.
string ids = "YOUR IDs";
int limit = 100;
List<string[]> store = new List<string[]>();
var split = ids.Split(',');
int counter = 0;
while (true) {
var batch = string.Join(",", split.Skip(counter++ * limit).Take(limit));
if (string.IsNullOrEmpty(batch)) break;
//Make your call here
}