private void btnCompare_Click(object sender, EventArgs e) { ListComparer c = new ListComparer(); c.compareFile = (itemA, itemB) => { KFile fA = (KFile)itemA; KFile fB = (KFile)itemB; if (fA.Size != fB.Size) { return(Operation.CHANGED); } if (string.IsNullOrEmpty(fA.Checksum) || string.IsNullOrEmpty(fB.Checksum)) { return(Operation.UNKNOWN); } if (fA.Checksum.Equals(fB.Checksum, StringComparison.OrdinalIgnoreCase)) { return(Operation.NOCHANGE); } else { return(Operation.CHANGED); } }; var res = c.CompareFolder(rootLocal.Children[0], currentItem); show_folder_grid((KFile)res); }