c# - 改进两个集合之间的比较 - LINQ? C#

标签 c# list linq

编辑: _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/

相关文章:

c# - 哪个是paypal cancel url响应参数

c# - 从硬件 ID 生成激活 key

python - 字典:如果列表中存在字符串,则将列表名称分配给字典

c# - 使用 2 个表之间的可选/条件联接进行查询

c# - Java servlet 中的 session 对象、cookie 与 ASP .NET

c# - ASP.NET Core MVC 中缺少类型/命名空间

c++ - 打印列表中的元素

python - 列表中的反向索引

c# - 使用 LINQ-to-SQL 跟踪数据库的外部更改

c# - 为什么此 Queryable.Where 调用会更改 Queryable 的类型参数?