从一个列表中选择不在其他列表中的对象

本文关键字:列表 其他 对象 选择 一个 | 更新日期: 2023-09-27 18:04:51

i ' m试图从一个列表中获取不在另一个列表中的数据,两个列表具有相同的数据类型,两个列表是具有不同数据的文章列表:

public class Articles
{
    public string ArticleName{ get; set; }
    public string ClientName { get; set; }
    public DateTime Date { get; set; }
    public string ProviderName { get; set; }
    public string Seller{ get; set; }
    public string ArticleCode { get; set; }
    public float Price { get; set; }
    public float Stock { get; set; }
    public int MiniumUnit { get; set; }
}
List<Articles> LstLowRotation=new List<Articles>();
List<Articles> LstVeryLowRotation=new List<Articles>();

,然后我在每个列表中添加数据(有些是不同的),然后:

 LstVeryLowRotation = LstVeryLowRotation.Where(x => !lstLowRotation.Any
 (z => z.ArticleCode == x.ArticleCode)).ToList();

但没有给我预期的结果,他们给了我更多的文章。

知道为什么不行吗?

also I try

LstVeryLowRotation.except(Lst.LowRotation)

我知道应该工作,我已经测试了只有几个数据和工作良好,但当我添加数据阅读器的数据它做错了,最奇怪的是,当我运行出现的数据不是在一个列表或另一个列表,它应该是不可能的!!

从一个列表中选择不在其他列表中的对象

尝试Enumerable.Except() -我认为它会做你想要的,如果你添加一个平等覆盖的文章类告诉它比较Articulo属性。

https://msdn.microsoft.com/en-us/library/vstudio/Bb300779 (v = VS.100) . aspx

最后所有人都是对的,问题出在数据库中,文章代码中有许多奇怪的字符,不得不使比较不起作用。

感谢所有人的帮助