Выделите целые из строки - PullRequest
10 голосов
/ 15 сентября 2008

Допустим, у меня есть веб-страница, которая в настоящее время принимает одно значение идентификатора через параметр URL:
http://example.com/mypage.aspx?ID=1234

Я хочу изменить его, чтобы он принимал список идентификаторов, например:
http://example.com/mypage.aspx?IDs=1234,4321,6789

Так что он доступен для моего кода в виде строки через context.Request.QueryString ["IDs"]. Какой лучший способ превратить это строковое значение в список ?

Редактировать: Я знаю, как сделать .split () на запятую, чтобы получить список строк, но я спрашиваю, потому что я не знаю, как легко преобразовать этот список строк в список int , Это все еще в .Net 2.0, так что лямбды нет.

Ответы [ 13 ]

0 голосов
/ 15 сентября 2008
List<int> convertIDs = new List<int>;
string[] splitIds = ids.split(',');
foreach(string s in splitIds)
{
    convertIDs.Add(int.Parse(s));
}

Для полноты вы захотите поместить try / catches вокруг цикла for (или вокруг вызова int.Parse ()) и обработать ошибку в соответствии с вашими требованиями. Вы также можете сделать tryparse () примерно так:

List<int> convertIDs = new List<int>;
string[] splitIds = ids.split(',');
foreach(string s in splitIds)
{
    int i;
    int.TryParse(out i);
    if (i != 0)
       convertIDs.Add(i);
}
0 голосов
/ 15 сентября 2008

Вам нужно будет просто пройти через них и int.TryParse каждый из них. после этого просто добавьте в список.

Неважно - @Splash победил меня в этом

0 голосов
/ 15 сентября 2008

Вы можете использовать string.Split () для разделения значений после извлечения их из URL.

string[] splitIds = ids.split(',');
...