【发布时间】:2014-11-30 23:04:17
【问题描述】:
我有 2 个包含不同实体的集合。如何从它们中创建 1 个具有唯一数据(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()
});
}
});
【问题讨论】:
-
为什么不知道好不好?你试过运行它吗?有错误吗?意外行为?
-
创建一个方法 bool HasSpecificProperties(object o);然后像这个集合一样检查。Any(HasSpecificProperties)
-
@eddie_cat,我从 db 获得的每个集合。
releases有 2 个元素,ratings- 17 个元素,它们不一样。所以在这个操作之后,我希望集合中有 19 个元素 -
这两个集合是否包含相同类型的元素?
-
@Magnus,不,2 个不同实体的集合