将带参数的URL拆分为单独的字符串

时间:2013-11-11 15:54:31

标签: c# enumeration

我的工作数据是字符串类型列表:

    a.aspx?a=1
    a.aspx?a=2
    a.aspx?a=3
    b.aspx?b=1
    b.aspx?b=2
    b.aspx?b=3
    c.aspx?c=1
    c.aspx?c=2
    c.aspx?c=3

我想做的是:

  1. 取列表中的第一个值(a.aspx?a = 1)
  2. 获取页面名称(a.aspx)
  3. 将所有匹配的页面放入一个单独的集合(a.aspx?a = 1,2,3)
  4. 删除原始列表中与页面名称匹配的所有条目(a.aspx)
  5. 重复1-4,这次第一个条目是b.aspx
  6. 所以直到我为每个页面名称设置了单独的集合
  7. 我可以做1-3好,但我不确定做第4步的最佳方法& 5即从循环内动态创建集合或实现类似结果的某种替代方案。

    有什么建议吗?

1 个答案:

答案 0 :(得分:1)

所以你想要GroupBy页面名称并为每个页面构建子列表?然后这应该工作:

List<List<string>> urlsPerName = list
    .Select(u => new { Name = Path.GetFileNameWithoutExtension(u), Full = u })
    .GroupBy(x => x.Name)
    .Select(g => g.Select(x => x.Full).ToList())
    .ToList();

结果,三个列表各有三个字符串:

        [0] "a.aspx?a=1"    string
        [1] "a.aspx?a=2"    string
        [2] "a.aspx?a=3"    string

        [0] "b.aspx?b=1"    string
        [1] "b.aspx?b=2"    string
        [2] "b.aspx?b=3"    string

        [0] "c.aspx?c=1"    string
        [1] "c.aspx?c=2"    string
        [2] "c.aspx?c=3"    string
相关问题