c#如果列表中有多个项目,如何检查对象是否已存在于列表中

时间:2017-06-15 20:06:45

标签: c# list linq

我是Csharp的新手

我有一个包含多个元素的列表。在将列表对象添加到列表之前,我想检查该对象是否已存在于列表中。

下面我给出了列表中有7个元素的样本列表,但我原来的要求列表中有20个以上的元素。

这就是为什么我要按原样比较列表对象并检查它是否存在。

我尝试了Contains(),LINQ,FINDALL()。没有任何效果。

我有一个非常大的数据集。

样品: 这是我的清单:

public class taxDetails
{
    public string record { get; set; }
    public string UpdateCd { get; set; }
    public string EffDt { get; set; }
    public string TermDt { get; set; }
    public string TransCd { get; set; }
    public string Id { get; set; }
    public string Type { get; set; }
 }

我想做这样的事情:

taxDetails ti = new taxDetails();

taxDetails.Add(ti);

只有当对象" ti"尚未列入清单。 我希望它比较所有7个元素并确定是否存在天气对象。

1 个答案:

答案 0 :(得分:0)

我尝试了以下内容并且有效。

List<Tuple<string>> test = new List<Tuple<string>>()
        {
            new Tuple<string>("dfsg"),
            new Tuple<string>("dfgfd"),
            new Tuple<string>("sdfdsfsdf"),
            new Tuple<string>("123")
        };
        var contians = test.Contains(new Tuple<string>("123"));

如果我不得不猜测它,因为你没有覆盖Equals方法。

public override bool Equals(
object obj )

尝试实现该功能,例如:

return this.field1 == obj.field1 && this.field2 == obj.field2 etc