gpt4 book ai didi

c# - 有没有办法使用 LINQ 同时对两个属性进行排序

转载 作者:行者123 更新时间:2023-12-04 15:08:52 27 4
gpt4 key购买 nike

我有以下类(class):

public class MyClass
{
public DateTime? Date1 { get; set; }

public DateTime? Date2 { get; set; }
}

此类中的对象始终将这些日期之一设为空,将另一个设为值,例如:

var obj1 = new MyClass
{
Date1 = new DateTime(2020/12/12),
Date2 = null
};
var obj2 = new MyClass
{
Date1 = null,
Date2 = new DateTime(2020/12/8)
};
var obj3 = new MyClass
{
Date1 = new DateTime(2020/12/24)
Date2 = null
};

有没有一种方法可以通过这两个属性从我的数据库上下文中获取有序数据? (可能在进行查询时合并两列,但我不希望输出具有合并的列)

在这种情况下,查询应该给出以下结果:[obj2, obj1, obj3]

最佳答案

如果需要使用 Linq to Entities 解决上述问题:

using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
var obj1 = new MyClass
{
Date1 = new DateTime(2020,12,12),
Date2 = null
};
var obj2 = new MyClass
{
Date1 = null,
Date2 = new DateTime(2020,12,8)
};
var obj3 = new MyClass
{
Date1 = new DateTime(2020,12,2),
Date2 = null
};

List<MyClass> lm = new List<MyClass>();
lm.Add(obj1);
lm.Add(obj2);
lm.Add(obj3);

var ls = lm.OrderBy(l => l.Date1 ?? l.Date2).ToList();

ls.ForEach(s => Console.WriteLine(s.Date1 ?? s.Date2));
}
}

public class MyClass
{
public DateTime? Date1 { get; set; }
public DateTime? Date2 { get; set; }
}

12/2/2020 12:00:00 AM
12/8/2020 12:00:00 AM
12/12/2020 12:00:00 AM

如果您需要在使用 Linq to SQL 的数据库上执行此操作,则可以在 Table 类中使用 NOTMAPPED 属性。

[NotMapped]
public int Date3 { get { return this.Date1??this.Date2; } }

然后在此列上应用 .OrderBy

关于c# - 有没有办法使用 LINQ 同时对两个属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65581705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com