检查集合是否包含具有特定属性的元素

本文关键字:属性 元素 集合 是否 包含具 检查 | 更新日期: 2023-09-27 18:25:40

我有两个具有不同实体的集合。如何从中创建一个具有唯一数据的集合(companyName&productName&certId)。

我尝试的是:第一个集合在循环中迭代,检查第二个集合是否包含具有相同certId、productName和companyName的元素。但我不确定我是否做得好。

如果元素不包含,我需要添加它。

releases.ForEach(
            r =>
            {
                if (!ratings.All(x =>
                    x.certID == r.certID && x.companyNameWhenRated == r.companyNameOnStore &&
                    x.productNameWhenRated == r.productNameOnStore))
                {
                    ratings.ToList().Add(new uRating
                                         {
                                             certID = r.certID,
                                             productNameWhenRated = r.productNameOnStore,
                                             companyNameWhenRated = r.companyNameOnStore,
                                             uCert = r.uCert,
                                             rAgeRating = r.uCert.uRatings
                                                 .Where(u => u.certID == r.certID
                                                             && u.productNameWhenRated != r.productNameOnStore
                                                             && u.companyNameWhenRated != r.companyNameOnStore)
                                                 .Select(ur => ur.rAgeRating).First()
                                         });
                }
            });

检查集合是否包含具有特定属性的元素

if (!ratings.All(...))意味着所有评级都必须与发布版本相匹配,这不是您想要的。使用if(!ratings.Any(...)),这意味着任何评级都必须与发行版相匹配。