2017-09-01 20 views
0

我有以下順序:排除出現在另一個序列元素

public static List<string> IgnoredSubCodes => new List<string> {"HERE", "NOT_HERE"};

var demographics = personify.CUS_DEMOGRAPHIC.Where(demographic => 
        clubIds.Contains(demographic.MASTER_CUSTOMER_ID) && 
        distinctCodes.Contains(demographic.DEMOGRAPHIC_CODE) && 
        distinctProgramYears.Contains(demographic.USR_PROGRAM_YEAR) && 
        !demographic.DEMOGRAPHIC_SUBCODE.Any(x => PersonifyConstants.DemographicCodes.DemographicSubCodes.IgnoredSubCodes)); 

上面的最後一行將無法正常工作,但我希望能夠說「不包括出現在此列表中的任何人口統計子代碼「。我怎樣才能做到這一點?我已經嘗試了幾個與.Where和.Any不同的子句,但我不瞭解我需要的排列方式。我可以在demographic.DEMOGRAPHIC_SUBCODE != "HERE" && demographic.DEMOGRAPHIC_SUBCODE != "NOT_HERE"這個查詢中對它進行硬編碼,但是我想在一個地方排除所有的排除。

回答

0

你可以試試嗎?希望它能起作用。

var demographics = personify.CUS_DEMOGRAPHIC.Where(demographic => 
       clubIds.Contains(demographic.MASTER_CUSTOMER_ID) && 
       distinctCodes.Contains(demographic.DEMOGRAPHIC_CODE) && 
       distinctProgramYears.Contains(demographic.USR_PROGRAM_YEAR) && 
       !PersonifyConstants.DemographicCodes.DemographicSubCodes.IgnoredSubCodes.Any(code => code == demographic.DEMOGRAPHIC_SUBCODE)); 
相關問題