文字列値であるJobCodeを持つオブジェクトのコレクションがあります。コレクション内に、JobCodeが同じである要素が4つを超えてはならないというビジネスルールがあります。私はこれに苦労しています。なぜなら、通常、リストをそれ自体と比較するのではなく、リストの外部にある既知の値と比較しているからです。
どんな助けでも大歓迎です。
あなたはあなたの悪い仕事を次のように特定することができます:
Jobs.GroupBy(j => j.JobCode).Where(g => g.Count() > 4)
あなたがどのような是正措置を取りたいのかは明確ではありません...
文字列プロパティでグループ化してから、4つを超える要素を持つグループがあるかどうかを確認できます。
bool test = jobs.GroupBy(z => z.MyString).Any(z => z.Count() > 4);
GroupBy
コレクションで使用しCount
、結果のグループよりも使用します。
var jobCodesWithMoreThanFourOccurences = collection.GroupBy(x => x.JobCode)
.Where(x => x.Count() > 4)
.Select(x => x.Key);
最後に選択するのKey
は、のキーとして使用したプロパティです。GroupBy
つまり、が含まれますJobCode
。