将 VB 程序的特定行转换为 C#

Converting a specific line of a VB program into C#

您好,我正在编写一个基于 VB 程序的 C# 程序来识别图像中的文本。但是,我似乎无法弄清楚这一行的 C# 等价物:

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

这是 ContourWithData class,listOfContoursWithData 是以下的一个实例:

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;
    }
}

您可以使用 lambda 表达式:

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

List<ContourWithData>.Sort() 方法使用 Comparison<ContourWithData> 作为参数。这是一个将两个 ContourWithData 实例作为输入和 returns 一个 int.

的委托