编辑: _existingRatings和_targetRatings都是数据库中的集合,其中Rating和RatingType都是键/值。
我有两个需要相互比较的RatingDto 集合:_existingRates 和_targetRates。我将简单地对 RatingTypeId 进行比较,然后需要检查 _targetRates 中的同一个是否具有空的评级字符串。
由于现在是星期一早上,我的大脑仍在 sleep ,我确信有一种更好、更简单的方法可以使用 LINQ 来完成此操作。这就是我目前正在做的事情:
class RatingDto
{
public int RatingTypeId { get; set; }
public string RatingType { get; set; }
public string Rating { get; set; }
}
foreach (var existing in _existingRatings)
{
foreach(var target in _targetRatings)
{
if(existing.RatingTypeId == target.RatingTypeId)
{
if(target.Rating == string.Empty)
{
_targetHasMissingRatings = true;
}
}
}
}
这应该没问题,因为每个集合中的最大数量约为 7 个,但我确信 LINQ 有更好、更简洁的方法。
最佳答案
这应该是您正在寻找的: (我喜欢使用 string.IsNullOrEmpty 而不是 cmp string.Empty)
_targetHasMissingRatings = _existingRatings.Any(er => string.IsNullOrEmpty(_targetRatings.FirstOrDefault(tr => er.RatingTypeId == tr.RatingTypeId)?.Rating));
关于c# - 改进两个集合之间的比较 - LINQ? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59454039/