3
속성 모음이 포함 된 컬렉션이 있습니다. 각 속성에는 유형 및 ID가 있습니다. 나는 속성 ids가 속성 유형의 그룹 내에서 있거나 속성 유형이 and'd 인 콜렉션을 필터링해야한다. 나는 다음과 같은 것을 생각해 내고 더 좋은 방법이 있는지 궁금해한다. 위의 코드에서 더 효율적이거나 효율적인 방법으로 linq을 필터링 할 수 있습니까
foreach (var ag in andAttrGrpIds)
{
filteredModels = filteredModels.Where(x => x.ProductAttributes.Any(pa => pa.AttributeType==ag && orAttributes.Contains(pa.AttributeId))).ToList();
}
는 andAttrGrpIds 및 orAttributes 문자열의 배열입니다.
고맙습니다. 나는 이것을 가지고 이것을 방정식의 다른 부분과 병합했다. 여기서 속성 유형 하위 값 중 하나는 값이고 값이다. 어떤 단계에서 두 단계로 진행되는 과정을 하나의 문장으로 축소 시켰습니다. – jason
이 model.ProductAttributes에 PA에서 allModels \t \t \t \t \t하자 mAttribs = 여기에 모델 filteredModels의 = 위치해 있습니다 \t \t \t \t \t \t \t \t \t 곳 orAttributes.Contains (pa.AttributeId) \t \t \t \t \t \t \t \t \t 선택 pa. AttributeType에 \t \t \t \t \t 내버려 objAttribIds = model.ProductAttributes.Select (PA => pa.AttributeId) \t \t \t \t \t 곳 (string.IsNullOrEmpty (andAttributes [0]) && andAttributes.Count() == 1) || ! andAttributes.Except (objAttribIds) .ANY() \t \t \t \t \t 곳 (string.IsNullOrEmpty (andAttrGrpIds [0]) && andAttrGrpIds.Count() == 1) || ! andAttrGrpIds.Except (mAttribs) .Any() \t \t \t \t \t 일부 모델을 선택하십시오. – jason