Данная функция, кажется, делает слишком много. Вот тот, который отвечает на вопрос, подразумеваемый вашим названием:
//int[] x = SplitStringIntoInts("1,2,3, 4, 5");
static int[] SplitStringIntoInts(string list)
{
string[] split = list.Split(new char[1] { ',' });
List<int> numbers = new List<int>();
int parsed;
foreach (string n in split)
{
if (int.TryParse(n, out parsed))
numbers.Add(parsed);
}
return numbers.ToArray();
}
РЕДАКТИРОВАТЬ (на основе вашего комментария к вопросу)
Вы определили три вещи, которые должна выполнять эта функция. Теперь вам просто нужно создать методы для каждого. Ниже приведены мои предположения о том, как вы могли бы их реализовать.
int[] ValidateIDs(int[] allIDs)
{
List<int> validIDs = new List<int>(allIDs);
//remove invalid IDs
return validIDs.ToArray();
}
void DownloadXmlData(int[] ids)
{
...
}
Теперь вы просто выполняете свои новые функции:
void CheckIconeID(string ids)
{
int[] allIDs = SplitStringIntoInts(ids);
int[] validIDs = ValidateIDs(allIDs);
DownloadXmlData(validIDs);
}