从Linq查询表达式返回的数组数据不正确

本文关键字:数组 数据 不正确 返回 表达式 Linq 查询 查询表 | 更新日期: 2023-09-27 18:21:56

请看下面的代码,在第9行,我正在计算一些要向前移动的日期,所以我使用AddDays方法,但作为回报,我得到所有行的所有日期都相同。

如果我这样做AddDays(6),那么它通过将所有日期移动6天来正确返回。

在这一点上,我应该如何根据我的逻辑来增加天数。

[DataContract]
public class JQGridRow
    {
        [DataMember]
        public long id;
        [DataMember]
        public object[] cell;
    }
   var sortedItems = invBatch.ListOfItems.OrderBy(i => i.RunDateIndex);//This will return IEnumerable<Class> List
DateTime startDate = DateTime.Parse(lblStartDate.Text);
JQGrid.JQGridRow[] rowData = (
        from i in sortedItems
        select new JQGrid.JQGridRow() {
        id = i.ID,
        cell = new string[] { 
        i.ID.ToString(),
        i.Status.ToString(),
        i.StatusTitle,
        i.RunDate.AddDays((startDate.Subtract(i.RunDate)).Days+1).ToString(Utility.DATE_FORMAT),
        //Here in above line the array returning same values for all columns of this row        
        i.StartTimeString,  
        i.EndTimeString, 
        i.EndTime.ToString(), 
        }}).ToArray();

从Linq查询表达式返回的数组数据不正确

日期都是相同的,并且在startDate之后的第二天相等,因为您是这样计算它们的。

i.RunDate.AddDays((startDate.Subtract(i.RunDate)).Days+1)

四舍五入到一整天,计算RunDate+(startDateRunDate+1)=startDate+1。i.RunDate无关紧要。