Determining if a possible new entry already exists in a dataset
Introduce a new object:

public class PrimaryKey
{
    public int TicketId { get; set; }
    public DateTime CreateTime { get; set; }
    public string Creator { get; set; }

    public PrimaryKey(int ticketId, DateTime createTime, string creator)
    {
        TicketId = ticketId;
        CreateTime = createTime;
        Creator = creator;
    }

    public override int GetHashCode()
    {
        int hash = 13;
        hash = (hash * 7) + TicketId.GetHashCode();
        hash = (hash * 7) + CreateTime.GetHashCode();
        hash = (hash * 7) + Creator.GetHashCode();
        return hash;
    }
    public override bool Equals(object value)
    {
        var other = value as PrimaryKey;
        return other != null 
             &amp;&amp; other.TicketId == TicketId 
             // ... etc.
    }
}


Use this in a hashset:

// right at the beginning...
var dedupeList = new Hashset&lt;PrimaryKey&gt;();
// Populate hashset from data table 

if (dedupeList.Add(new PrimaryKey(newEntry.TicketId, newEntry.CreateTime, newEntry.Creator))
{
    // New
}
else
{
    // Already added.
}


You wont have to search through the whole data table each time which should save a lot of time when the data table is large. However, you will use more memory.