c# - 如何将多个对象值相互比较?

标签 c# icomparer

假设我有一个包含以下值的对象(另请注意,我不希望为此使用 datetime 对象,仅使用以下值,我希望在比较器本身中解决此问题):

int year; 
int month; 
int day;
int sec;
int min;

我如何将我的比较器中的所有这些多个值相互比较,以便根据日期列出它们?

然后我想创建一个 Comparer.cs 类:
class MyComparer: IComparer
{
    int sort;

    public MyComparer(int s)
    {
        sort= s;
    }

    public int Compare(object x, object y)
    {
        Date d1 = (Date)x;
        Date d2 = (Date)y;
        int result= 0;

         // d1.Year.CompareTo(d2.Year);  //get accessors from other class
        // i seem to be limited here by comparing only 1 single value to a other?

        return result;
    }
}

}

最佳答案

像这样:

int result = d1.Year.CompareTo(d2.Year);
if (result != 0) return result;

result = d1.Month.CompareTo(d2.Month);
if (result != 0) return result;

...

return 0;   //All properties were equal

关于c# - 如何将多个对象值相互比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716792/

相关文章:

c# - .where(...).Any() 与 ..Any(...) 之间的性能差异

c# - 与 Cisco 电话的 TAPI;使用 "sidecar"800 模块

C# List<T> 使用 IComparer 参数排序给出编译错误

C# IComparer<T> 标准用法问题

c# - vb.net 中的 IComparer 问题,但在 C# 中工作相同

C# 参数化 Oracle 更新在 ExecuteNonQuery 上失败

c# - 在MediaElement中播放音频时显示一些内容

c# - 在两个不同的类之间使用后台 worker 的进度条

c# - 带参数的自定义 Icomparer

c# - 此 Icomparer 中导致空引用的不一致在哪里?