假设我有一个网页,目前通过url参数接受单个ID值:http://example.com/mypage.aspx? ID =
1234
我想将其更改为接受ID 列表,如下所示:http:
//example.com/mypage.aspx?IDs = 1234,4321,6789
所以我的代码可以通过context.Request.QueryString ["IDs"]作为字符串使用. 将该字符串值转换为List
编辑:我知道如何在逗号上执行.split()来获取字符串列表,但我问,因为我不知道如何轻松地将该字符串列表转换为int列表.这仍然是.Net 2.0,所以没有lambdas.
那些提供明确答案的人没有冒犯,但很多人似乎在回答你的问题,而不是解决你的问题.你想要多个ID,所以你认为你可以这样:
http://example.com/mypage.aspx?IDs=1234,4321,6789
问题是这是一个不可靠的解决方案.在将来,如果您想要多个值,如果他们有逗号,您会怎么做?更好的解决方案(这在查询字符串中完全有效)是使用具有相同名称的多个参数:
http://example.com/mypage.aspx?ID=1234;ID=4321;ID=6789
然后,您使用的任何查询字符串解析器都应该能够返回ID列表.如果它无法处理(并且还处理分号而不是&符号),那么它就会被破坏.
像这样的东西可能会起作用:
public static IListGetIdListFromString(string idList) { string[] values = idList.Split(','); List ids = new List (values.Length); foreach (string s in values) { int i; if (int.TryParse(s, out i)) { ids.Add(i); } } return ids; }
然后将使用哪个:
string intString = "1234,4321,6789"; IListlist = GetIdListFromString(intString); foreach (int i in list) { Console.WriteLine(i); }