Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Linq查询表达式返回的数组数据不正确_C#_Linq - Fatal编程技术网

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

C# 从Linq查询表达式返回的数组数据不正确,c#,linq,C#,Linq,请看下面的代码,在第9行,我正在计算一些向前移动的日期,所以我使用AddDays方法,但作为回报,我得到所有行的所有日期都相同 如果我这样做AddDays(6),那么它通过将所有日期移动6天来正确返回 在这一点上,根据我的逻辑,我应该如何增加天数呢 [DataContract] public class JQGridRow { [DataMember] public long id; [DataMember] public

请看下面的代码,在第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();
[DataContract]
公共类JQGridRow
{
[数据成员]
公共长id;
[数据成员]
公共对象[]单元;
}
var sortedItems=invBatch.ListOfItems.OrderBy(i=>i.RunDateIndex)//这将返回IEnumerable列表
DateTime startDate=DateTime.Parse(lblStartDate.Text);
JQGrid.JQGridRow[]行数据=(
从我开始
选择newjqgrid.JQGridRow(){
id=i.id,
单元格=新字符串[]{
i、 ID.ToString(),
i、 Status.ToString(),
i、 状态标题,
i、 RunDate.AddDays((startDate.Subtract(i.RunDate)).Days+1.ToString(实用程序.DATE\u格式),
//在上面的行中,数组为此行的所有列返回相同的值
i、 StartTimeString,
i、 EndTimeString,
i、 EndTime.ToString(),
}}).ToArray();

开始日期之后的第二天,日期都是相同的,因为您是这样计算的

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

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

这些日期在
开始日期之后的第二天都是相同的,因为您是这样计算的

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

四舍五入到全天,计算RunDate+(startDate RunDate+1)=startDate+1
i.RunDate
不重要。

根本不清楚您想做什么,也不清楚为什么您觉得调用
DateTime是一个好主意。反复解析
而不是只解析一次。。。一个简短但完整的程序,去掉了所有你不感兴趣的东西,这会使问题更清楚。很抱歉,我没有更清楚地问我的问题,我想要一个数组,它包含一个
ID
&
行集合
。现在,对于每一行,我希望日期向前移动xyz天。根本不清楚您想做什么,也不清楚为什么您觉得调用
DateTime是个好主意。反复分析
,而不是只分析一次。。。一个简短但完整的程序,去掉了所有你不感兴趣的东西,这会使问题更清楚。很抱歉,我没有更清楚地问我的问题,我想要一个数组,它包含一个
ID
&
行集合
。现在,对于每一行,我希望日期向前移动xyz天。没有日期是不一样的,看看我是否这样做
i.RunDate.AddDays(6.days)
,如果
sortedItems
包含4行,我会得到4行不同的日期,这些日期被添加,即向前移动6天。是,因为当你加上6天,你不会减去原来的日期。rundate rundate=0,因此始终只使用startdate@FosterZ:如果只指定常量6,则日期将不同。你来这里的目的是什么?@pinusnegra:我不明白你的意思,请解释一下more@FosterZ好的,一个例子(让我们忘记这些是日期时间):runDate=2,startDate=5。您可以这样做:runDate+(startDate-runDate+1),所以:2+(5-2+1),也就是6。获取另一个runDate:runDate=3。3 + (5 - 3 + 1) = 6. 明白了吗?没有日期是不一样的,看看我是否这样做
i.RunDate.AddDays(6.Days)
,如果
sortedItems
包含4行,我会得到4行不同的日期,这些日期会被添加,即转发6天。是的,因为当添加6天时,不会减去原始日期。rundate rundate=0,因此始终只使用startdate@FosterZ:如果只指定常量6,则日期将不同。你来这里的目的是什么?@pinusnegra:我不明白你的意思,请解释一下more@FosterZ好的,一个例子(让我们忘记这些是日期时间):runDate=2,startDate=5。您可以这样做:runDate+(startDate-runDate+1),所以:2+(5-2+1),也就是6。获取另一个runDate:runDate=3。3 + (5 - 3 + 1) = 6. 知道了?