我的工作数据是字符串类型列表:
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-3好,但我不确定做第4步的最佳方法& 5即从循环内动态创建集合或实现类似结果的某种替代方案。
有什么建议吗?
答案 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