Я новичок в 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