【发布时间】:2015-10-27 19:59:38
【问题描述】:
我正在使用 Umbraco CMS 尝试对节点的集合(DynamicNode 类型)进行排序,但 LINQ OrderBy 语句未按预期工作。我必须在这里遗漏一些东西吗?
我一直在调试这个..
DynamicNodeList thingsToDo = Model.Descendants("Tourism-Things-To-Do");
if (thingsToDo != null && thingsToDo.Count() > 0)
{
foreach(dynamic thingToDo in thingsToDo)
{
@thingToDo.Name <br />
}
<br />
foreach(dynamic thingToDo in thingsToDo.OrderBy(x => x.Name, StringComparer.CurrentCultureIgnoreCase))
{
@thingToDo.Name <br />
}
}
输出:
[第一次迭代的未排序列表] 品质套房酒店 戴斯酒店 棕榈树旅馆 超级8 温迪克雷斯特住宿加早餐旅馆 [应该是第二次迭代的按字母顺序排列的列表] 戴斯酒店 超级8 温迪克雷斯特住宿加早餐旅馆 棕榈树旅馆 品质套房酒店谁能给我一些关于为什么这行不通的见解?这段代码中的Name 只是一个字符串。
【问题讨论】:
-
你可以试试
thingsToDo.OrderBy(x => x.Name.Trim(), StringComparer.CurrentCultureIgnoreCase)吗?呈现 HTML 输出时,名称中可能存在不可见的空格。 -
您还可以通过
<pre> @thingToDo.Name </pre> <br/>获得洞察力 -
我已经尝试了这两个想法,但仍然没有运气......输出是相同的puu.sh/kZTe0/7ed123757e.png