Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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# blic int fkProject{get;set;} 公共int fkFirst{get;set;} 公共整数{get;set;} 公共日期时间日期{get;set;} } List dataList=新列表(); 添加(新数据{pkidentier=1,fkProject=1030,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,10,05,00)}); 添加(新数据{pkidentier=2,fkProject=1030,fkFirst=1,fkSecond=2,date=newdatetime(2020,08,03,10,11,00)}); 添加(新数据{pkidentier=3,fkProject=1030,fkFirst=3,fkSecond=1,date=newdatetime(2020,08,03,14,00,00)}); 添加(新数据{pkidentier=4,fkProject=1030,fkFirst=3,fkSecond=2,date=newdatetime(2020,08,03,14,02,00)}); 添加(新数据{pkidentier=5,fkProject=1040,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,15,00,00)}); Add(新数据{pkidentier=6,fkProject=1050,fkFirst=2,fkSecond=1,date=newdatetime(2020,08,04,08,00,00)}); 添加(新数据{pkidentier=7,fkProject=1050,fkFirst=2,fkSecond=2,date=newdatetime(2020,08,04,08,10,00)}); 添加(新数据{pkidentier=8,fkProject=1050,fkFirst=2,fkSecond=3,date=newdatetime(2020,08,04,08,15,00)}); var groupProject=dataList.GroupBy(i=>i.fkProject)。选择(groupItem=>groupItem.OrderByDescending(dataItem=>dataItem.fksond)。然后选择(dataItem=>dataItem.date).First());_C#_Sql_Linq - Fatal编程技术网

C# blic int fkProject{get;set;} 公共int fkFirst{get;set;} 公共整数{get;set;} 公共日期时间日期{get;set;} } List dataList=新列表(); 添加(新数据{pkidentier=1,fkProject=1030,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,10,05,00)}); 添加(新数据{pkidentier=2,fkProject=1030,fkFirst=1,fkSecond=2,date=newdatetime(2020,08,03,10,11,00)}); 添加(新数据{pkidentier=3,fkProject=1030,fkFirst=3,fkSecond=1,date=newdatetime(2020,08,03,14,00,00)}); 添加(新数据{pkidentier=4,fkProject=1030,fkFirst=3,fkSecond=2,date=newdatetime(2020,08,03,14,02,00)}); 添加(新数据{pkidentier=5,fkProject=1040,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,15,00,00)}); Add(新数据{pkidentier=6,fkProject=1050,fkFirst=2,fkSecond=1,date=newdatetime(2020,08,04,08,00,00)}); 添加(新数据{pkidentier=7,fkProject=1050,fkFirst=2,fkSecond=2,date=newdatetime(2020,08,04,08,10,00)}); 添加(新数据{pkidentier=8,fkProject=1050,fkFirst=2,fkSecond=3,date=newdatetime(2020,08,04,08,15,00)}); var groupProject=dataList.GroupBy(i=>i.fkProject)。选择(groupItem=>groupItem.OrderByDescending(dataItem=>dataItem.fksond)。然后选择(dataItem=>dataItem.date).First());

C# blic int fkProject{get;set;} 公共int fkFirst{get;set;} 公共整数{get;set;} 公共日期时间日期{get;set;} } List dataList=新列表(); 添加(新数据{pkidentier=1,fkProject=1030,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,10,05,00)}); 添加(新数据{pkidentier=2,fkProject=1030,fkFirst=1,fkSecond=2,date=newdatetime(2020,08,03,10,11,00)}); 添加(新数据{pkidentier=3,fkProject=1030,fkFirst=3,fkSecond=1,date=newdatetime(2020,08,03,14,00,00)}); 添加(新数据{pkidentier=4,fkProject=1030,fkFirst=3,fkSecond=2,date=newdatetime(2020,08,03,14,02,00)}); 添加(新数据{pkidentier=5,fkProject=1040,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,15,00,00)}); Add(新数据{pkidentier=6,fkProject=1050,fkFirst=2,fkSecond=1,date=newdatetime(2020,08,04,08,00,00)}); 添加(新数据{pkidentier=7,fkProject=1050,fkFirst=2,fkSecond=2,date=newdatetime(2020,08,04,08,10,00)}); 添加(新数据{pkidentier=8,fkProject=1050,fkFirst=2,fkSecond=3,date=newdatetime(2020,08,04,08,15,00)}); var groupProject=dataList.GroupBy(i=>i.fkProject)。选择(groupItem=>groupItem.OrderByDescending(dataItem=>dataItem.fksond)。然后选择(dataItem=>dataItem.date).First());,c#,sql,linq,C#,Sql,Linq,GroupBy将按项目编号分组,然后按秒排序,然后按日期降序。然后取每个组中的第一个元素。您可以使用GroupBy,如下例所示: class Data { public int pkIdentifier { get; set; } public int fkProject { get; set; } public int fkFirst { get; set; } public int fkSecond { get; set; } public DateT

GroupBy将按项目编号分组,然后按秒排序,然后按日期降序。然后取每个组中的第一个元素。

您可以使用GroupBy,如下例所示:

class Data
{
    public int pkIdentifier { get; set; }
    public int fkProject { get; set; }
    public int fkFirst { get; set; }
    public int fkSecond { get; set; }
    public DateTime date { get; set; }
}

List<Data> dataList = new List<Data>();

dataList.Add(new Data { pkIdentifier = 1, fkProject = 1030, fkFirst = 1, fkSecond = 1, date = new DateTime(2020, 08, 03, 10, 05, 00) });
dataList.Add(new Data { pkIdentifier = 2, fkProject = 1030, fkFirst = 1, fkSecond = 2, date = new DateTime(2020, 08, 03, 10, 11, 00) });
dataList.Add(new Data { pkIdentifier = 3, fkProject = 1030, fkFirst = 3, fkSecond = 1, date = new DateTime(2020, 08, 03, 14, 00, 00) });
dataList.Add(new Data { pkIdentifier = 4, fkProject = 1030, fkFirst = 3, fkSecond = 2, date = new DateTime(2020, 08, 03, 14, 02, 00) });
dataList.Add(new Data { pkIdentifier = 5, fkProject = 1040, fkFirst = 1, fkSecond = 1, date = new DateTime(2020, 08, 03, 15, 00, 00) });
dataList.Add(new Data { pkIdentifier = 6, fkProject = 1050, fkFirst = 2, fkSecond = 1, date = new DateTime(2020, 08, 04, 08, 00, 00) });
dataList.Add(new Data { pkIdentifier = 7, fkProject = 1050, fkFirst = 2, fkSecond = 2, date = new DateTime(2020, 08, 04, 08, 10, 00) });
dataList.Add(new Data { pkIdentifier = 8, fkProject = 1050, fkFirst = 2, fkSecond = 3, date = new DateTime(2020, 08, 04, 08, 15, 00) });

var groupProject = dataList.GroupBy(i => i.fkProject).Select(groupItem => groupItem.OrderByDescending(dataItem => dataItem.fkSecond).ThenBy(dataItem => dataItem.date).First());
类数据
{
公共int PKI标识符{get;set;}
公共项目{get;set;}
公共int fkFirst{get;set;}
公共整数{get;set;}
公共日期时间日期{get;set;}
}
List dataList=新列表();
添加(新数据{pkidentier=1,fkProject=1030,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,10,05,00)});
添加(新数据{pkidentier=2,fkProject=1030,fkFirst=1,fkSecond=2,date=newdatetime(2020,08,03,10,11,00)});
添加(新数据{pkidentier=3,fkProject=1030,fkFirst=3,fkSecond=1,date=newdatetime(2020,08,03,14,00,00)});
添加(新数据{pkidentier=4,fkProject=1030,fkFirst=3,fkSecond=2,date=newdatetime(2020,08,03,14,02,00)});
添加(新数据{pkidentier=5,fkProject=1040,fkFirst=1,fkSecond=1,date=newdatetime(2020,08,03,15,00,00)});
Add(新数据{pkidentier=6,fkProject=1050,fkFirst=2,fkSecond=1,date=newdatetime(2020,08,04,08,00,00)});
添加(新数据{pkidentier=7,fkProject=1050,fkFirst=2,fkSecond=2,date=newdatetime(2020,08,04,08,10,00)});
添加(新数据{pkidentier=8,fkProject=1050,fkFirst=2,fkSecond=3,date=newdatetime(2020,08,04,08,15,00)});
var groupProject=dataList.GroupBy(i=>i.fkProject)。选择(groupItem=>groupItem.OrderByDescending(dataItem=>dataItem.fksond)。然后选择(dataItem=>dataItem.date).First());
GroupBy将按项目编号分组,然后按秒排序,然后按日期降序。然后取每组的第一个元素

pkIdentifier fkProject fkFirst fkSecond Date 2 1030 1 2 03.08.2020 10:11:00 5 1040 1 1 03.08.2020 15:00:00 8 1050 2 3 04.08.2020 08:15:00 SELECT ps.fkProject, ps.fkFirst, ps.fkSecond, min(ps.Date) as Date FROM ProjectsStatus ps INNER JOIN ( SELECT a.fkProject, MAX(a.fkSecond) as maxSecond FROM ProjectStatus a GROUP BY a.fkProject ) b ON ps.fkProject = b.fkProject and ps.fkSecond = b.maxSecond group by ps.fkProject, ps.First, ps.Second var query = this.dataContext.ProjectStatus.Where( x => x.fkSecond == this.dataContext.ProjectStatus.Where(y => y.fkProject == x.fkProject).Max(s => s.fkSecond) ); pkIdentifier fkProject fkFirst fkSecond Date 2 1030 1 2 03.08.2020 10:11:00 4 1030 3 2 03.08.2020 14:02:00 5 1040 1 1 03.08.2020 15:00:00 8 1050 2 3 04.08.2020 08:15:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication163
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("pkIdentifier", typeof(int));
            dt.Columns.Add("fkProject", typeof(int));
            dt.Columns.Add("fkFirst", typeof(int));
            dt.Columns.Add("fkSecond", typeof(int));
            dt.Columns.Add("Date", typeof(DateTime));
            
            dt.Rows.Add(new object[] { 1, 1030, 1, 1, new DateTime(2020, 3, 8, 10, 5, 0)});
            dt.Rows.Add(new object[] { 2, 1030, 1, 2, new DateTime(2020, 3, 8, 10, 11, 0)});
            dt.Rows.Add(new object[] { 3, 1030, 3, 1, new DateTime(2020, 3, 8, 14, 0, 0)});
            dt.Rows.Add(new object[] { 4, 1030, 3, 2, new DateTime(2020, 3, 8, 14, 2, 0)});
            dt.Rows.Add(new object[] { 5, 1040, 1, 1, new DateTime(2020, 3, 8, 15, 0, 0)});
            dt.Rows.Add(new object[] { 6, 1050, 2, 1, new DateTime(2020, 3, 8, 8, 0, 0)});
            dt.Rows.Add(new object[] { 7, 1050, 2, 2, new DateTime(2020, 3, 8, 8, 10, 0)});
            dt.Rows.Add(new object[] { 8, 1050, 2, 3, new DateTime(2020, 3, 8, 8, 15, 0)});

            DataTable dt2 = dt.AsEnumerable()
                .OrderBy(x=> x.Field<int>("fkProject"))
                .ThenByDescending (x => x.Field<int>("fkSecond"))
                .ThenBy(x => x.Field<DateTime>("Date"))
                .GroupBy(x => x.Field<int>("fkProject"))
                .Select(x => x.First())
                .CopyToDataTable();

        }
    }
}
class Data
{
    public int pkIdentifier { get; set; }
    public int fkProject { get; set; }
    public int fkFirst { get; set; }
    public int fkSecond { get; set; }
    public DateTime date { get; set; }
}

List<Data> dataList = new List<Data>();

dataList.Add(new Data { pkIdentifier = 1, fkProject = 1030, fkFirst = 1, fkSecond = 1, date = new DateTime(2020, 08, 03, 10, 05, 00) });
dataList.Add(new Data { pkIdentifier = 2, fkProject = 1030, fkFirst = 1, fkSecond = 2, date = new DateTime(2020, 08, 03, 10, 11, 00) });
dataList.Add(new Data { pkIdentifier = 3, fkProject = 1030, fkFirst = 3, fkSecond = 1, date = new DateTime(2020, 08, 03, 14, 00, 00) });
dataList.Add(new Data { pkIdentifier = 4, fkProject = 1030, fkFirst = 3, fkSecond = 2, date = new DateTime(2020, 08, 03, 14, 02, 00) });
dataList.Add(new Data { pkIdentifier = 5, fkProject = 1040, fkFirst = 1, fkSecond = 1, date = new DateTime(2020, 08, 03, 15, 00, 00) });
dataList.Add(new Data { pkIdentifier = 6, fkProject = 1050, fkFirst = 2, fkSecond = 1, date = new DateTime(2020, 08, 04, 08, 00, 00) });
dataList.Add(new Data { pkIdentifier = 7, fkProject = 1050, fkFirst = 2, fkSecond = 2, date = new DateTime(2020, 08, 04, 08, 10, 00) });
dataList.Add(new Data { pkIdentifier = 8, fkProject = 1050, fkFirst = 2, fkSecond = 3, date = new DateTime(2020, 08, 04, 08, 15, 00) });

var groupProject = dataList.GroupBy(i => i.fkProject).Select(groupItem => groupItem.OrderByDescending(dataItem => dataItem.fkSecond).ThenBy(dataItem => dataItem.date).First());