Public classData { Public intMa =1; Public intMB =2; Public intMC =0; Static intCount =0; PublicData () {count++; Ma=count; } } //Delete the collection that meets the requirements in one sentenceAsm.removeall (Data md) = {returnMd.ma%3==0?true:false; }); //equivalent toAsm.removeall (need); BOOLneed (Data MD) {if(md.ma%3==0) return true; Else return false; }
Asm.removeall (system.predicate<t>) in which the delegate prototype and System.func<t,tr> are the same, but with different names.
Asm.removeall (System.comparison<in t>) in which the delegate prototype and System.func<tx,ty,int> are the same, but the name is different. In this first look, It is also difficult to understand why System.comparison<in T> seems to have just passed in a parameter, but the actual corresponding delegate prototype is two parameters, this only by remembering, and by the return of the number of positive or negative values to determine the order of the way, more abstract.
Asm.sort (Data mx,data my) =//This method implements a sort of asm from large to small { ifreturn -1; // returns 1 indicates that MX is determined to have a sorted value less than my, so it's in front Else if return 1 // Returning 1 indicates that MX is determined to have a sorted value greater than my, so it is in the back. Else return 0 ; });
System.predicate<in t> and system.comparison<in t> for list in C #