LinQ orderby菜鸟排序问题

混乱之序 2011-02-14 03:55:29
为什么 我的代码 没有排序
IEnumerable<XElement> iEnumerable = from xx in temp
orderby Convert.ToInt32(xx.Element("item").Element("index").Value)
select xx;

查询的xml 格式为
<!--数据库升级-->
<SQLUpdate>
<!--DBName:数据库名-->
<item type="Microsoft SQL Server (SqlClient)">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.0to1.1_kj222.sql</name>
<index>1</index>
<describe>KJ222项目版本_v1.0升级到1.1</describe>
<path>数据库升级脚本\Update_1.0to1.1_kj222.sql</path>
</item>
<item type="Microsoft SQL Server (SqlClient)">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.1to1.2_kj222.sql</name>
<index>4</index>
<describe>KJ222项目版本_v1.1升级到1.2</describe>
<path>数据库升级脚本\Update_1.1to1.2_kj222.sql</path>
</item>
<item type="Microsoft SQL Server (SqlClient)">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.2to1.3_WeightSys.sql</name>
<index>2</index>
<describe>称重防作弊项目版本_v1.2升级到1.3</describe>
<path>数据库升级脚本\Update_1.2to1.3_WeightSys.sql</path>
</item>
<item type="Microsoft SQL Server (SqlClient)">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.3to1.4_WeightSys.sql</name>
<index>3</index>
<describe>称重防作弊项目版本_v1.3升级到1.4</describe>
<path>数据库升级脚本\Update_1.3to1.4_WeightSys.sql</path>
</item>
<item type="Microsoft SQL Server (SqlClient)">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.4to1.5_WeightSys.sql</name>
<index>5</index>
<describe>称重防作弊项目版本_v1.4升级到1.5</describe>
<path>数据库升级脚本\Update_1.4to1.5_WeightSys.sql</path>
</item>
</SQLUpdate>


代码跟踪得到的 列表没有把乱序的xml文件格式排序

本来想把跟踪到的截图放上来 貌似不行就算了

求解答 谢谢
...全文
301 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
混乱之序 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
XElement xmlPage = XElement.Parse(xml); var
query = xmlPage.Descendants("item").orderby (x=>x.Element("index").Value)
[/Quote]
大师 小弟 方才顿悟 这 才是我需要的
谢谢
让我又学到了点东西 感激[/抱拳]
混乱之序 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
XElement xmlPage = XElement.Parse(xml); var
query = xmlPage.Descendants("item").orderby (x=>x.Element("index").Value)
[/Quote]
谢谢 才看到你给的 另一种解答
貌似分给少了 抱歉啊!
混乱之序 2011-02-14
  • 打赏
  • 举报
回复
哦 好的 谢谢 督察 和各位帮助的人 结贴了
我再研究研究
q107770540 2011-02-14
  • 打赏
  • 举报
回复
Descendants 可遍历某节点或文档下的所有子节点
Elements 则是遍历当前节点或文档下一级的子节点 (这点区别非常重要)
wuyq11 2011-02-14
  • 打赏
  • 举报
回复
XElement xmlPage = XElement.Parse(xml); var
query = xmlPage.Descendants("item").orderby (x=>x.Element("index").Value)
混乱之序 2011-02-14
  • 打赏
  • 举报
回复
高手 高手 能解答下 为什么我那样得不到 正确结果
但项目中是要 读取xml文件解析 加载进来
再分析节点 下是否有子节点
从而进行下一步 判断和编写
是 var和IEnumerable<XElement>?还是.Descendants和.Elements的区别
求渔 谢谢
wuyq11 2011-02-14
  • 打赏
  • 举报
回复
XElement xmlPage = XElement.Parse(xml);
var query = from q in xmlPage.Descendants("item")
orderby Convert.ToInt32(q.Element("index").Value)
select q;
混乱之序 2011-02-14
  • 打赏
  • 举报
回复
public void GetXmlConfig(List<ChildNode> list, string items, bool flag)
{
XElement doc = XElement.Load(GlobalCache.FilePath + @"\Config.xml");
try
{
IEnumerable<XElement> temp = doc.Elements("Install").Elements(items);
IEnumerable<XElement> iEnumerable = from xx in temp
orderby Convert.ToInt32(xx.Element("item").Element("index").Value)
select xx;
if (temp.FirstOrDefault().Value != "")
{...}

我完整是这样写的 不知道 哪出的问题...需要读出xml 加载进来 并判断节点下是否有元素 再做编写
q107770540 2011-02-14
  • 打赏
  • 举报
回复

void Main()
{
string xml = @"<!--数据库升级-->
<SQLUpdate>
<!--DBName:数据库名-->
<item type=""Microsoft SQL Server (SqlClient)"">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.0to1.1_kj222.sql</name>
<index>1</index>
<describe>KJ222项目版本_v1.0升级到1.1</describe>
<path>数据库升级脚本\Update_1.0to1.1_kj222.sql</path>
</item>
<item type=""Microsoft SQL Server (SqlClient)"">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.1to1.2_kj222.sql</name>
<index>4</index>
<describe>KJ222项目版本_v1.1升级到1.2</describe>
<path>数据库升级脚本\Update_1.1to1.2_kj222.sql</path>
</item>
<item type=""Microsoft SQL Server (SqlClient)"">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.2to1.3_WeightSys.sql</name>
<index>2</index>
<describe>称重防作弊项目版本_v1.2升级到1.3</describe>
<path>数据库升级脚本\Update_1.2to1.3_WeightSys.sql</path>
</item>
<item type=""Microsoft SQL Server (SqlClient)"">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.3to1.4_WeightSys.sql</name>
<index>3</index>
<describe>称重防作弊项目版本_v1.3升级到1.4</describe>
<path>数据库升级脚本\Update_1.3to1.4_WeightSys.sql</path>
</item>
<item type=""Microsoft SQL Server (SqlClient)"">
<!--name:数据库创建脚本文件名;index:执行顺序;describe:描述;path:路径-->
<name>Update_1.4to1.5_WeightSys.sql</name>
<index>5</index>
<describe>称重防作弊项目版本_v1.4升级到1.5</describe>
<path>数据库升级脚本\Update_1.4to1.5_WeightSys.sql</path>
</item>
</SQLUpdate>";
XElement xmlPage = XElement.Parse(xml);

var query = from xx in xmlPage.Descendants("item")
orderby Convert.ToInt32(xx.Element("index").Value)
select xx;



}

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧