2016-10-04 2 views
0

Ich habe die Visio-Shapes zu einem Shape-Array hinzugefügt. Ich versuche, die Visio-Formen nach ihrer Größe aufzulisten. Wie bestelle ich es in aufsteigender/absteigender Reihenfolge?Sortieren/Sortieren von Visio-Shapes nach Größe im Shape-Array

Shape[] VisioShape = new Shape[0]; 
int Count = 0 
foreach (Shape shape in VisioPage.Shapes) 
{ 
if (shape.OneD != 0) 
{ 
    VisioShape[Count] = shape; 
    Count++; 
} 
} 

Antwort

0

Wie wäre es mit einigen LINQ? Im Folgenden ist eine kurze Schnipsel ich in LinqPad schrieb (nach diesen Beitrag: http://visualsignals.typepad.co.uk/vislog/2015/12/getting-started-with-c-in-linqpad-with-visio.html)

void Main() 
{ 
    var vApp = MyExtensions.GetRunningVisio(); 

    Visio.Page vPag = vApp.ActivePage; 
    var q = from s in vPag.Shapes.Cast<Visio.Shape>() 
      where s.OneD == 0 
      orderby s.CellsU["Height"].ResultIU 
      select s.Text; 
    q.Dump(); 
} 

einige Formen wie diese Gegeben:

Visio shapes

LINQPad gibt diese:

enter image description here

Wenn Sie in die andere Richtung bestellen möchten, fügen Sie einfachhinzuam Ende der Bestellung von der Linie:

orderby s.CellsU["Height"].ResultIU descending 
Verwandte Themen