我是linq的新手,我发现了很多不同的方法来构建查询。我想发布这个以显示我目前正在使用的代码并尝试解决两个问题。
能够动态传入asc / desc
一个。在某些情况下,我希望能够以不同的asc / desc顺序对每个属性进行排序
能够通过参数
动态传递订单数量一个。在下面的代码中,我为我想要订购的每个项目传递了多个属性。显然,我宁愿传入一个集合,然后允许代码根据该集合构建订单。我可以传递集合,但我不确定如何从该集合构建订单。
湾我也认为排序类型会在某些时候发挥作用,所以我不知道我怎么能够知道如何动态演员?
感谢您的任何意见。
Private Function XMLSort(ByVal xOldDom As XmlDocument, ByVal sChildNodeName As String, ByVal sOrderByAttributeName1 As String, ByVal sOrderByAttributeName2 As String, ByVal sOrderByAttributeName3 As String) As IEnumerable(Of XElement)
Dim xOldDocument As New XDocument
xOldDocument = XDocument.Parse(xOldDom.OuterXml)
Dim oQuery As IEnumerable(Of XElement)
oQuery = From xNode In xOldDocument.Descendants(sChildNodeName) _
Order By CInt(xNode.Attribute(sOrderByAttributeName1)), CInt(xNode.Attribute(sOrderByAttributeName2)), CStr(xNode.Attribute(sOrderByAttributeName3)) _
Select xNode
Return oQuery
End Function
答案 0 :(得分:0)
在你的情况下,最好的选择是:做到这一点。当您拥有集合并在编译时知道所需的顺序时,只需使用LINQ来订购它。我认为,你不能做得更好,你必须以某种方式表达秩序,LINQ就像它一样舒服。