List小结
假设有两个List集合,找出集合中重复的部分:
//检测listX和listY中的重复部分
//把X复制到Z避免循环同时操作X从而出现异常
itemX.ForEach(i => itemZ.Add(i));
foreach (Entry en in itemZ) { //findindex:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 //System.Collections.Generic.List<T> 中第一个匹配元素的从零开始的索//引。 if (itemY.FindIndex((x) => { return x.tdzh.Contains(en.tdzh); }) >= 0) { itemX.Remove(en); // sbRepetition.AppendLine("土地号:" + en.tdzh); FileHelper.WriteLog(en.tdzh, "重复的土地证号"); } }
这个例子是根据Y找出X中和Y相同得部分并且去掉,但是不能直接的遍历X的这个List,因为同时遍历和去掉数据这样的操作会引发另一个进程正在使用这个集合现在不能使用类似于这样的异常
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案