C# 如何在列表中获取一周中某一天的日期数<;日期时间>;?
你好,我有一个列表,有一些日期,我需要得到一周中一天的天数,例如,输入一个int变量,周日的日期数,周一的另一个int 我已尝试使用以下代码: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是我存储
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()
});