C#从LINQ计算对象初始化期间的日期时间差异

smi*_*irQ 2 c# linq datetime

我有以下代码运行正常,它从SQL表返回数据:

    List<TypeA> Class1 = ( from rec in Entity.Context.Table  select new Class1
                      { NAME = rec.name,
                        FIRSTDATE = rec.firstdate,
                        LASTDATE = rec.lastdate

                         //my func CalcTimeDiff, doesnt work
                          ElapsedMin = CalcTimeDiff(LASTDATE, FIRSTDATE) 

                       }).ToList();
public class Class1
{
   public string  NAME = {get; set;}
   public Nullable<DateTime> FIRSTDATE = {get; set;}
   public Nullable<DateTime> LASTDATE = {get; set;}
   public int ElapsedMin = {get; set;}

   // My function to calculate time difference
    public int CalcTimeDiff ( DateTime A, DateTime B)
          {
              TimeSpan Diff = A - B;
              int MinElapsed = (int)Diff.TotalMinutes;
              return MinElapsed;
            }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是添加方法来计算LASTDATE和FIRSTDATE之间的DateTime差异到Class1类并在Class1初始化中调用它.但仍然没有运气,得到错误我不能使用非静态字段...任何想法如何让它管理?

Tim*_*ers 5

除非您需要ElapsedMin设置(我不明白为什么会这样),只需将其设为计算属性:

public int ElapsedMin => CalcTimeDiff(FirstDate, LastDate);
Run Code Online (Sandbox Code Playgroud)

要么

public int ElapsedMin => (int)(LastDate - FirstDate).Value.TotalMinutes;
Run Code Online (Sandbox Code Playgroud)