私はLINQの初心者です。この2つのクエリをどのように動作させようと努力しても、結果として常にゼロになります。私は1ヶ月の営業日と合計日数を計算するためにすべてを試しました。 MDateは日付ピッカーに、BusinessDaysはテキストボックスに、TotalDaysInMonthは別のテキストボックスにバインドされます。LINQクエリがゼロを返すのはなぜですか?
選択した月の正しい値が表示されるようにこれらのクエリを修正してもらえますか? (例:9月:20営業日、合計30日)
public class LocationViewModel : INotifyPropertyChanged
{
public LocationViewModel()
{
SetBusinessDays();
SetTotalDaysInMonth();
}
public DateTime mDate = DateTime.Now;
public DateTime MDate
{
get { return mDate; }
set
{
if (value == mDate)
{
return;
}
else
{
mDate = value;
OnPropertyChanged("MDate");
SetBusinessDays();
SetTotalDaysInMonth();
}
}
}
int _businessDays;
public int BusinessDays
{
get { return _businessDays; }
set
{
_businessDays = value;
OnPropertyChanged("BusinessDays");
}
}
int _totalDaysInMonth;
public int TotalDaysInMonth
{
get { return _totalDaysInMonth; }
set
{
_totalDaysInMonth = value;
OnPropertyChanged("TotalDaysInMonth");
}
}
private void SetBusinessDays()
{
int BusinessDays = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month))
.Select(day => new DateTime(MDate.Year, MDate.Month, day))
.Count(d => d.DayOfWeek != DayOfWeek.Sunday &&
d.DayOfWeek != DayOfWeek.Saturday);
}
private void SetTotalDaysInMonth()
{
int TotalDaysInMonth = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month))
.Select(day => new DateTime(MDate.Year, MDate.Month, day))
.Count();
}
}
ありがとうございます。
あなたのプロパティではなく、ローカル変数を設定しています。 – juharr
ローカル変数の 'int'宣言を削除します。 –
私は22.を得る[DotNetFiddle](https://dotnetfiddle.net/ZNA9eJ)。問題はあなたのLINQではありません。 –