2

日付参照UserJoinDateと日付のリストを持っているlistfriendsJoinedUserJoinDateの前にサービスに参加した友人の数と、同じ時間以降の数を数えたいと思います。

次の行を書きましたが、機能しません。

List<DateTime> joinersDates = getJoinersDates();
FriendsJoinedBeforeCount = joinersDates .Where(x => x < UserJoinDate).Count();
FriendsJoinedAfterCount = joinersDates .Where(x => x >= UserJoinDate).Count();

リストjoinersDatesからUserJoinDateの前の日付の数と、同じまたは後の日付の数を数える方法を知っている人はいますか?

編集

これがImmediateWindowからのコピーです。

churnersDates.Count( x => x > UserChurnDate)
Expression cannot contain lambda expressions

UserJoinDateはDateTimeです

例:

UserJoinDate = 9.11.2010 0:30:00

(値は日付からコピーされます:{9.11.2010 0:00:00}日:9 DayOfWeek:火曜日DayOfYear:313 ...)

joinersDates.First() = 17.5.2011 0:30:00

ありがとう!

4

3 に答える 3

1

このように、DateTime の Year、Month、Day プロパティを別々に使用して比較してみてください。

FriendsJoinedBeforeCount = joinersDates .Where(x => (x.Year < UserJoinDate.Year) && (x.Month< UserJoinDate.Month) && (x.Day < UserJoinDate.Day)).Count(); 
于 2012-06-15T05:36:43.257 に答える
0

次のコードを試してください。

List<DateTime> joinersDates = getJoinersDates();
FriendsJoinedBeforeCount = joinersDates.Count(x => x.ToUniversalTime() < UserJoinDate.ToUniversalTime());
FriendsJoinedAfterCount = joinersDates.Count - FriendsJoinedBeforeCount ;

または、Ticks プロパティを使用してみてください。

List<DateTime> joinersDates = getJoinersDates();
FriendsJoinedBeforeCount = joinersDates.Count(x => x.ToUniversalTime().Ticks < UserJoinDate.ToUniversalTime().Ticks);
FriendsJoinedAfterCount = joinersDates.Count - FriendsJoinedBeforeCount ;
于 2012-06-15T05:32:33.420 に答える