Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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#_Lambda - Fatal编程技术网

C# 如何在列表中获取一周中某一天的日期数<;日期时间>;?

C# 如何在列表中获取一周中某一天的日期数<;日期时间>;?,c#,lambda,C#,Lambda,你好,我有一个列表,有一些日期,我需要得到一周中一天的天数,例如,输入一个int变量,周日的日期数,周一的另一个int 我已尝试使用以下代码: List<int> SundayDates = DateList.FindAll(x => x.DayOfWeek = DayOfWeek.Sunday) List SundayDates=DateList.FindAll(x=>x.DayOfWeek=DayOfWeek.Sunday) 但它说它是只读的(DateList是我存储

你好,我有一个列表,有一些日期,我需要得到一周中一天的天数,例如,输入一个int变量,周日的日期数,周一的另一个int

我已尝试使用以下代码:

List<int> SundayDates = DateList.FindAll(x => x.DayOfWeek = DayOfWeek.Sunday) 
List SundayDates=DateList.FindAll(x=>x.DayOfWeek=DayOfWeek.Sunday)
但它说它是只读的(DateList是我存储日期和获取日期的位置)。


  • 您需要使用
    ==
    ,这是为了进行相等性检查。单个
    =
    是一个赋值
  • 要计算出现的次数,请使用

这是一周中每一天的计数。分组联接确保即使某一天不在列表中(例如,星期一不出现),该天仍会出现在结果列表中,计数为0

var DateList=new List();//您填写的日期列表
var allDaysOfWeek=Enum.GetValues(typeof(DayOfWeek)).Cast();
var totalDayCounts=allDaysOfWeek.GroupJoin(DateList,dayOfWeek=>dayOfWeek,date=>date.dayOfWeek,(dayOfWeek,times)=>new
{
dayOfWeek=dayOfWeek,
DayOfWeekCount=times.Count()
});


不要忘记使用System.Linq添加
在代码文件顶部

好的,那么是什么阻止了你这么做?@Igor好吧,我试过使用以下代码:List SundayDates=DateList.FindAll(x=>x.DayOfWeek=DayOfWeek.Sunday),但它说它是只读的(DateList,是我存储日期和获取日期的列表)。请回答您的问题,并添加您的尝试、实际输出和预期输出。还包括您可能遇到的任何错误,包括编译器错误或运行时异常详细信息。您需要使用
==
,这是为了进行相等性检查。单个
=
是一个赋值。使用Linq的方法。还要确保使用相等运算符(
=
)而不是赋值运算符(
=
int numberOfSundays = DateList.Count(x => x.DayOfWeek == DayOfWeek.Sunday);
var DateList = new List<DateTime>(); // your populated list of dates

var allDaysOfWeek = Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>();
var totalDayCounts = allDaysOfWeek.GroupJoin(DateList, dayOfWeek => dayOfWeek, date => date.DayOfWeek, (dayOfWeek, times) => new
{
    DayOfTheWeek = dayOfWeek,
    DayOfWeekCount = times.Count()
});