다음 코드와 동일한 결과를 얻으려면 단일 LINQ 식을 작성하는 방법이 있습니까? 당신은뿐만 아니라 GroupBy
을 사용할 수LINQ를 사용하여 집합이 유효 항목과 유효하지 않은 항목으로 어떻게 분할됩니까?
// Valid conversions
foreach (var valid in partitioned[true])
{
}
// Invalid conversions
foreach (var invalid in partitioned[false])
{
}
하지만 ToLookup
즉시 결과를 구체화하고 당신의 편리한 방법을 제공합니다 :
var partitioned = extracted.ToLookup(c => validations.All(valid => valid(c)));
다음 :
var validations = new Func<conversion, bool>[] {
c => c.affiliate.affiliate_id > 0,
c => c.campaign_id > 0
};
var invalidConversions = from c in extractedConversions
where validations.Any(valid => !valid(c))
select c;
var validConversions = from c in extractedConversions
where validations.All(valid => valid(c))
select c;
권리를 모르겠어 그것이받는 기능의 결과 인 유형의 ... 그건 내가 원했던 것입니다. –