我有一个对象集合,它们的 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
.