2017-08-10 3 views
0

Salut J'écris un programme C# basé sur un programme VB pour reconnaître le texte dans les images. Cependant, je ne peux pas l'air d'être en mesure de comprendre le C# équivalent de cette ligne:Conversion d'une ligne spécifique d'un programme VB en C#

listOfContoursWithData.Sort(Function(oneContourWithData, otherContourWithData) oneContourWithData.boundingRect.X.CompareTo(otherContourWithData.boundingRect.X)) 

Ceci est la classe ContourWithData qui listOfContoursWithData est une instance de:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Emgu.CV.Util; 

namespace TrainAndTest 
{ 
    public class ContourWithData 
    { 
     const int MIN_CONTOUR_AREA = 100; 

     public VectorOfPoint contour; // contour 
     public System.Drawing.Rectangle boundingRect; // bounding rect for contour 
     public double dblArea; // area of contour 

     public bool checkIfContourIsValid(){ 
     if ((dblArea < MIN_CONTOUR_AREA)) 
      return false; 
     else 
      return true; 
    } 
} 
+0

Est-ce que 'listOfContoursWithData' a' List '? –

Répondre

2

Vous pouvez utiliser un expression lambda:

listOfContoursWithData.Sort((oneContourWithData, otherContourWithData) => 
           oneContourWithData.boundingRect.X.CompareTo(otherContourWithData.boundingRect.X)); 

Le procédé List<ContourWithData>.Sort() prend un Comparison<ContourWithData> comme paramètre. Il s'agit d'un délégué prenant deux instances ContourWithData en entrée et renvoyant un int.

+0

Merci, cela m'a beaucoup aidé :) –