publicstaticList<int>FilterNotContainedUsingLoop(List<int>listToFilter,List<int>filteringList){List<int>filteredList=[];foreach(intiteminlistToFilter){if(!filteringList.Contains(item))filteredList.Add(item);}returnfilteredList;}publicstaticList<int>FilterContainedUsingWhere(List<int>listToFilter,List<int>filteringList){returnlistToFilter.Where(filteringList.Contains).ToList();}publicstaticList<int>FilterNotContainedUsingWhere(List<int>listToFilter,List<int>filteringList){returnlistToFilter.Where(x=>!filteringList.Contains(x)).ToList();}//remove duplicatespublicstaticList<int>FilterContainedUnique(List<int>listToFilter,List<int>filteringList){returnlistToFilter.Where(filteringList.Contains).Distinct().ToList();}publicstaticList<int>FilterNotContainedUsingExcept(List<int>listToFilter,List<int>filteringList){returnlistToFilter.Except(filteringList).ToList();}//Filtering Lists of Different TypespublicstaticList<string>FilterStringsByInts(List<string>listToFilter,List<int>filteringList){returnlistToFilter.Where(x=>filteringList.Contains(int.Parse(x))).ToList();}//Filter a List via HashSetintsToFilter=[2,4,6,8,10,16,20,28,40,45];filteringIntList=[0,10,20,30,40,50];publicstaticList<int>FilterUsingHashSet(List<int>listToFilter,List<int>filteringList){HashSet<int>hashToFilter=newHashSet<int>(listToFilter);hashToFilter.IntersectWith(filteringList);returnhashToFilter.ToList();}//Using Masks to Filter a ListintsToFilter=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];List<bool>mask=[true,false,false,false];publicstaticList<int>FilterUsingMask(List<int>listToFilter,List<bool>mask){returnlistToFilter.Where((item,index)=>mask[index%mask.Count]).ToList();}//1, 5, 9, 13