如何从分组依据生成html字符串 [英] How do I generate an html string from group by
本文介绍了如何从分组依据生成html字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这里,我有我班上阿辛纳特人的名单
Here I have a list from my class Assinantes
new Assinante
{
City= "BAURU",
Num= 112,
ClientCode= 3123,
Phone= "1412345675"
},
new Assinante
{
City= "BAURU",
Num= 45,
ClientCode= 3123,
Phone= "214464347"
}
我需要按城市,ClientCod和Num进行分组,而我已经在这里完成了
And I needed to group by City, ClientCod and Num, which I've already done here:
var listGroup= (from a in lista
group a by new {a.City, a.ClientCode, a.Num});
然后,我需要使用Linq生成一个html字符串,如下例所示:
Then, I needed to generate an html string with Linq, like the example below:
<div>
<h2>Bauru</h2>
<ul>
<li>3123</li>
<ul>
<li>112</li>
<ul>
<li>1412345675</li>
</ul>
<li>45</li>
<ul>
<li>214464347</li>
</ul>
</ul>
</ul>
</div>
有人可以给我建议吗?
推荐答案
,您可以使用XElement
生成所需的html.我想我的示例可以使用Linq方法Aggregate重写,但是由于代码更具可读性,我更喜欢嵌套的foreach
you can generate desired html using XElement
. i suppose my sample can be re-written with Linq method Aggregate, but i prefer nested foreach due to more readable code
using System.Xml;
using System.Xml.Linq;
...
var xml = new XElement("div");
foreach(var city in lst.GroupBy(x=>x.City))
{
var cityXml = new XElement("h2", city.Key);
var cityUl = new XElement("ul");
foreach(var client in city.GroupBy(c=>c.ClientCode))
{
var clientXml = new XElement("li", client.Key);
var clientUl = new XElement("ul");
foreach(var num in client.GroupBy(cl=>cl.Num))
{
var numXml = new XElement("li", num.Key);
var numUl = new XElement("ul");
foreach(var phone in num)
{
numUl.Add(new XElement("li",phone.Phone));
}
clientUl.Add(numXml);
clientUl.Add(numUl);
}
cityUl.Add(clientXml);
cityUl.Add(clientUl);
}
xml.Add(cityXml);
xml.Add(cityUl);
}
string res = xml.ToString();
这篇关于如何从分组依据生成html字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文