加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – List Intersect返回null

发布时间:2020-12-15 04:20:23 所属栏目:百科 来源:网络整理
导读:我有两个List FileInfo我想在它们之间返回公共FileItem. ListFileInfo outputList = new ListFileInfo();outputList = list1.Intersect(list2).ToList(); 但是,我要回到一个空列表. 这两个列表都包含找到的FileInfo System.IO.DirectoryInfo dir = new Syste
我有两个List< FileInfo>我想在它们之间返回公共FileItem.
List<FileInfo> outputList = new List<FileInfo>();
outputList = list1.Intersect(list2).ToList();

但是,我要回到一个空列表.

这两个列表都包含找到的FileInfo

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
IEnumerable<System.IO.FileInfo> fileList = 
dir.GetFiles("*.*",System.IO.SearchOption.AllDirectories);

并通过查询过滤.

解决方法

我怀疑FileInfo不会覆盖Equals / GetHashCode,因此即使它们引用同一个文件,两个不同的对象也是不相等的.三种选择:

>如果您不需要将列表作为FileInfo,则将列表转换为路径
>创建IEqualityComparer< FileInfo>并将其传递给Intersect
>在MoreLINQ中以与DistinctBy相同的样式实现IntersectBy并将其作为项目的补丁提出:)(我以为我们已经拥有它,但显然不是……)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读