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

时间:2012-01-28 12:18:31

标签: c# linq

请参阅下面的代码,在第9行我正在计算一些日期以继续前进,所以我使用AddDays方法,但作为回报,我得到所有行的所有日期相同。< / p>

如果我这样做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();

1 个答案:

答案 0 :(得分:3)

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

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

舍入到一整天,你计算RunDate +(startDate-RunDate + 1)= startDate + 1. i.RunDate并不重要。