私のメソッドをデバッグしようとしていますが、何が問題なのか分かりません。シーケンスにLinqステートメントで一致する要素エラーがありません
エラーを投げて、時には大丈夫です。私は何が間違っているのか分からない。
は、ここに私の方法です:
private void GetWorkingWeek(int month, int year)
{
var cal = System.Globalization.CultureInfo.CurrentCulture.Calendar;
var daysInMonth = Enumerable.Range(1, cal.GetDaysInMonth(year, month));
var listOfWorkWeeks = daysInMonth
.Select(day => new DateTime(year, month, day))
.GroupBy(d => cal.GetWeekOfYear(d, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday))
.Select(g => Tuple.Create(g.Key, g.First(), g.Last(d => d.DayOfWeek != DayOfWeek.Saturday && d.DayOfWeek != DayOfWeek.Sunday)))
.ToList();
foreach (var weekGroup in listOfWorkWeeks)
{
Console.WriteLine("Week{0} = {1} {2} to {1} {3}"
, weekNum++
, System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month)
, weekGroup.Item2.Day
, weekGroup.Item3.Day);
}
}
これは、エラーが表示されるラインである:
var listOfWorkWeeks = daysInMonth
.Select(day => new DateTime(year, month, day))
.GroupBy(d => cal.GetWeekOfYear(d, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday))
.Select(g => Tuple.Create(g.Key, g.First(), g.Last(d => d.DayOfWeek != DayOfWeek.Saturday && d.DayOfWeek != DayOfWeek.Sunday)))
.ToList();
これはエラーです:
InvalidOperationException : Sequence contains no matching element
私は、First()またはLast()メソッドでエラーが発生していると思います。 FirstOrDefault()とLastOrDefault()の代わりに、例外をトリガーする代わりに空のデータセットに対してnullを返すこともできます。 –
[シーケンスには一致する要素が含まれていません]の重複があります(http://stackoverflow.com/questions/3994336/sequence-contains-no-matching-element) – demongolem