Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/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# 但是,您可能会受制于另一个程序员类设计,所以这里有一个直接的解决方案_C#_Linq_Collections - Fatal编程技术网

C# 但是,您可能会受制于另一个程序员类设计,所以这里有一个直接的解决方案

C# 但是,您可能会受制于另一个程序员类设计,所以这里有一个直接的解决方案,c#,linq,collections,C#,Linq,Collections,您的整体解决方案需要以下签名、过滤和排序: Func<IEnumerable<PersonTimeSheet>, IEnumerable<PersonTimeSheet>> 然后是一种将PersonTimeSheet链接到该顺序的方法: static MonthOrder getLatestMonth(PersonTimeSheet x) { x.Dec != 0 ? return MonthOrder.DEC; x.Nov != 0 ? r

您的整体解决方案需要以下签名、过滤和排序:

Func<IEnumerable<PersonTimeSheet>, IEnumerable<PersonTimeSheet>>
然后是一种将
PersonTimeSheet
链接到该顺序的方法:

static MonthOrder getLatestMonth(PersonTimeSheet x)
{
    x.Dec != 0 ? return MonthOrder.DEC;
    x.Nov != 0 ? return MonthOrder.NOV;
    x.Oct != 0 ? return MonthOrder.OCT;
    // Hopefully you get the picture.
}
最后,我需要一个方法,可以从
PersonTimeSheet
的集合中找到最新的
MonthOrder
。所以我的总体签名应该是:

Func<IEnumerable<PersonTimeSheet>, MonthOrder>
现在,我们将
个人时间表
过滤到最近一个月:

IEnumerable<PersonTimeSheet> latestMonthSheets = latestYearSheets.Where((x, i) => getMonth(x) == latestMonth);
现在,我们可以获取最近一个月的小时数并按其排序:

IEnumerable<PersonTimeSheet> finalResult = latestMonthSheets.OrderBy(x => HoursOfMonth(latestMonth, x));
IEnumerable finalResult=latestMonthSheets.OrderBy(x=>HoursOfMonth(latestMonth,x));

这更适合我的练习。但希望它能说明,一个好的核心类设计总是能够战胜围绕问题进行的v.s.编码。稍微改进一下课堂设计,你的答案就会明显减少。

我有时会觉得无聊,喜欢处理难度大的课堂设计。不要有错误的印象,其他答案的建议是“正确的”。您应该重新设计
PersonTimeSheet
,以维护月顺序、年顺序等信息。但是,您可能会受制于另一个程序员类设计,因此这里有一个直接的解决方案

您的整体解决方案需要以下签名、过滤和排序:

Func<IEnumerable<PersonTimeSheet>, IEnumerable<PersonTimeSheet>>
然后是一种将
PersonTimeSheet
链接到该顺序的方法:

static MonthOrder getLatestMonth(PersonTimeSheet x)
{
    x.Dec != 0 ? return MonthOrder.DEC;
    x.Nov != 0 ? return MonthOrder.NOV;
    x.Oct != 0 ? return MonthOrder.OCT;
    // Hopefully you get the picture.
}
最后,我需要一个方法,可以从
PersonTimeSheet
的集合中找到最新的
MonthOrder
。所以我的总体签名应该是:

Func<IEnumerable<PersonTimeSheet>, MonthOrder>
现在,我们将
个人时间表
过滤到最近一个月:

IEnumerable<PersonTimeSheet> latestMonthSheets = latestYearSheets.Where((x, i) => getMonth(x) == latestMonth);
现在,我们可以获取最近一个月的小时数并按其排序:

IEnumerable<PersonTimeSheet> finalResult = latestMonthSheets.OrderBy(x => HoursOfMonth(latestMonth, x));
IEnumerable finalResult=latestMonthSheets.OrderBy(x=>HoursOfMonth(latestMonth,x));

这更适合我的练习。但希望它能说明,一个好的核心类设计总是能够战胜围绕问题进行的v.s.编码。稍微改进一下课堂设计,你的答案就会明显减少。

我有时会觉得无聊,喜欢处理难度大的课堂设计。不要有错误的印象,其他答案的建议是“正确的”。您应该重新设计
PersonTimeSheet
,以维护月顺序、年顺序等信息。但是,您可能会受制于另一个程序员类设计,因此这里有一个直接的解决方案

您的整体解决方案需要以下签名、过滤和排序:

Func<IEnumerable<PersonTimeSheet>, IEnumerable<PersonTimeSheet>>
然后是一种将
PersonTimeSheet
链接到该顺序的方法:

static MonthOrder getLatestMonth(PersonTimeSheet x)
{
    x.Dec != 0 ? return MonthOrder.DEC;
    x.Nov != 0 ? return MonthOrder.NOV;
    x.Oct != 0 ? return MonthOrder.OCT;
    // Hopefully you get the picture.
}
最后,我需要一个方法,可以从
PersonTimeSheet
的集合中找到最新的
MonthOrder
。所以我的总体签名应该是:

Func<IEnumerable<PersonTimeSheet>, MonthOrder>
现在,我们将
个人时间表
过滤到最近一个月:

IEnumerable<PersonTimeSheet> latestMonthSheets = latestYearSheets.Where((x, i) => getMonth(x) == latestMonth);
现在,我们可以获取最近一个月的小时数并按其排序:

IEnumerable<PersonTimeSheet> finalResult = latestMonthSheets.OrderBy(x => HoursOfMonth(latestMonth, x));
IEnumerable finalResult=latestMonthSheets.OrderBy(x=>HoursOfMonth(latestMonth,x));

这更适合我的练习。但希望它能说明,一个好的核心类设计总是能够战胜围绕问题进行的v.s.编码。稍微改进一下课堂设计,你的答案就会明显减少。

我有时会觉得无聊,喜欢处理难度大的课堂设计。不要有错误的印象,其他答案的建议是“正确的”。您应该重新设计
PersonTimeSheet
,以维护月顺序、年顺序等信息。但是,您可能会受制于另一个程序员类设计,因此这里有一个直接的解决方案

您的整体解决方案需要以下签名、过滤和排序:

Func<IEnumerable<PersonTimeSheet>, IEnumerable<PersonTimeSheet>>
然后是一种将
PersonTimeSheet
链接到该顺序的方法:

static MonthOrder getLatestMonth(PersonTimeSheet x)
{
    x.Dec != 0 ? return MonthOrder.DEC;
    x.Nov != 0 ? return MonthOrder.NOV;
    x.Oct != 0 ? return MonthOrder.OCT;
    // Hopefully you get the picture.
}
最后,我需要一个方法,可以从
PersonTimeSheet
的集合中找到最新的
MonthOrder
。所以我的总体签名应该是:

Func<IEnumerable<PersonTimeSheet>, MonthOrder>
现在,我们将
个人时间表
过滤到最近一个月:

IEnumerable<PersonTimeSheet> latestMonthSheets = latestYearSheets.Where((x, i) => getMonth(x) == latestMonth);
现在,我们可以获取最近一个月的小时数并按其排序:

IEnumerable<PersonTimeSheet> finalResult = latestMonthSheets.OrderBy(x => HoursOfMonth(latestMonth, x));
IEnumerable finalResult=latestMonthSheets.OrderBy(x=>HoursOfMonth(latestMonth,x));

这更适合我的练习。但希望它能说明,一个好的核心类设计总是能够战胜围绕问题进行的v.s.编码。稍微改进一下课堂设计,你的答案就会少很多行。

你能修改你的课堂吗?使用
字典
或类似工具存储每个月的整数表示值(即使是
int[]
也可以,因为一年中的月数不会经常变化:))。然后可以使用现有属性返回适当的值。如果您没有在示例中指定“最近一个月”,则查询会更容易。无论如何,它应该成为一个参数。每个人在五月都有0个小时。@RGraham-注意,有些日历的月数是可变的。这就更迫切地需要一本长达数月的字典了。@ernodeweard。但是如果他用强类型变量表示年份,我们可以放心地假设他不会修改类吗?使用
字典
或类似工具存储每个月的整数表示值(即使是
int[]
也可以,因为一年中的月数不会经常变化:))。然后可以使用现有属性返回适当的值。如果您没有在示例中指定“最近一个月”,则查询会更容易。无论如何,它应该成为一个参数。每个人在五月都有0小时。@RGraham-注意,有些日历的月数是可变的