for 循环问题
我想要的结果是:
<provence sortId="0" name="北京">
<shop sort="0" name="一号店" address="中国北京" tel="1234567" img="images/map/shop.png" stamp="1" />
</provence>
<provence sortId="1" name="浙江">
<shop sort="0" name="一号店" address="浙江" tel="1234567" img="images/map/shop.png" stamp="1" />
</provence>
</data>
代码:
BLLC_mapone bo = new BLLC_mapone();
BLLC_maptow bt=new BLLC_maptow();
var oneshuj = bo.SelectRecordAll() ;//拿到 1级
var onequerys = from m in oneshuj select m;
var kk = bt.SelectRecordAll();
for (int x = 0; x <= (onequerys.Count());x++ )
{
string id = onequerys.Max(m=>m.Id).ToString();
var qqs = from m in kk where (m.oneid == int.Parse(id)) select m;//根据一级编号拿到 2级
Response.Write("<provence sortId=\"" + x + "\" name=\"" + onequerys.Max(m => m.Titles) + "\">");
for (int i = 0; i <= (qqs.Count()-1); i++)
{
Response.Write("<shop sort=\"0\" name=\""+qqs.Max(m=>m.name).ToString()+"\" address=\""+qqs.Max(m=>m.address).ToString()+"\" tel=\""+qqs.Max(m=>m.tel).ToString()+"\" img=\""+qqs.Max(m=>m.img).ToString()+"\" stamp=\""+(i+1)+"\" />");
}
Response.Write("</provence>");
}
输出的结果是:
<provence sortId="0" name="深圳">
<shop sort="0" name="又一家酒店" address="枫林路" tel="135135665" img="../CUFile/179006.gif" stamp="1" />
</provence>
<provence sortId="1" name="深圳">
<shop sort="0" name="又一家酒店" address="枫林路" tel="135135665" img="../CUFile/179006.gif" stamp="1" />
</provence>
<provence sortId="2" name="深圳">
<shop sort="0" name="又一家酒店" address="枫林路" tel="135135665" img="../CUFile/179006.gif" stamp="1" />
</provence>
上面的数据是对的,它这么老是输出一条数据呢?
我想根据编号匹配,没有就不输出
------解决方案--------------------string id = onequerys.Max(m=>m.Id).ToString();
------解决方案--------------------C# code
你的代码逻辑存在问题:
//首先onequerys.Max(m=>m.Id) 这个是固定的,所以外边的循环,每次循环取到的 id 都是相同的
//则 qqs也是相同的
for (int x = 0; x <= (onequerys.Count());x++ )
{
string id = onequerys.Max(m=>m.Id).ToString();
var qqs = from m in kk where (m.oneid == int.Parse(id)) select m;//根据一级编号拿到 2级