Predicate<T> 只有一个参数,这会导致如下情形:
                item= ItemList.FindIndex(
                    (Item x) => x.Name==name
                );
仅仅因为 name 不同而要次次构造。顺便说句,我这代码是在循环中的,有个 namelist。