2017-10-20 4 views
1

J'ai une datatable d'objets pointshape dans une carte et je veux commander cette liste par Object.baseshape.label.y qui est une double valeur. Comment puis-je faire cela en utilisant Linq? J'ai mis en œuvre ce code jusqu'àUtilisation de l'ordre Linq par la propriété d'un objet Vb.Net

Dim query As IEnumerable(Of DataRow) = From result In dataArray.AsEnumerable() Order By result.Field(Of Object)("MapShapes") Descending 

mais je veux quelque chose comme ça

Dim query As IEnumerable(Of DataRow) = From result In dataArray.AsEnumerable() Order By result.Field(Of Object)("MapShapes")..baseshape.label.y Descending 
+1

Au lieu de Field (Of Object), pouvez-vous utiliser Field (Of WhateverConcreteTypeItReallyIs)? – dwilliss

+1

Oui, je peux et c'est la réponse. Le type est MapSuite.BaseMapShape – vicangel

Répondre

1

Vous pouvez utiliser le type d'objet spécifique dans le champ (de ...) comme ça ...

Dim query = From result In dataArray.AsEnumerable() Order By result.Field(Of MapSuite.BaseMapShape)("MapShapes").label.y Descending