我通過發送where子句不如授人以一個自定義的方法獲取數據了一個XML文件:如何將OrderBy添加到此LINQ語句中?
foreach (PageItem pageItem in GetPageItems(xmlDoc, sf => (int)sf.Element("id") == id))
{
_collection.Add(pageItem);
}
的正常工作,但現在我想補充一個排序依據條款爲好,但可「T得到正確的語法,這不承認‘pageItem’的排序依據子句中,等
我怎樣才能獲得排序依據在下面的代碼工作?
public IEnumerable<PageItem> GetPageItems(XDocument xmlDoc, Func<XElement, bool> whereClause)
{
var pageItems = xmlDoc.Descendants("pageItem")
.Where(whereClause)
.OrderBy((int)pageItem.Element("displayOrder").Value)
.Select(pageItem => new PageItem
{
Id = (int)pageItem.Element("id"),
WhenCreated = (DateTime)pageItem.Element("whenCreated"),
ItemOwner = pageItem.Element("itemOwner").Value,
PublishStatus = pageItem.Element("publishStatus").Value,
CorrectionOfId = (int)pageItem.Element("correctionOfId"),
IdCode = pageItem.Element("idCode").Value,
Menu = pageItem.Element("menu").Value,
Title = pageItem.Element("title").Value,
Description = pageItem.Element("description").Value,
AccessGroups = pageItem.Element("accessGroups").Value,
DisplayOrder = (int)pageItem.Element("displayOrder")
});
return pageItems;
}
完美,不得不將其更改爲這一點,但它的工作:.OrderBy(P => Int32.Parse(p.Element( 「displayOrder」)值)。) – 2009-07-01 14:42:27
它應該切出。值而不是修改它以使用Int32.Parse。 – 2009-07-01 14:45:37