结合两个列表<>并删除其中的重复项

时间:2015-09-03 14:40:48

标签: c# .net linq

我有两个列表对象。我将它们组合成一个列表。虽然合并我需要删除重复。 TweetID是要比较的字段。

/*typename*/ Pa<AAA>::Pe<int> qq;

我已将两个列表合并,但无法过滤掉重复项。是否有任何内置函数可以删除List&lt;&gt;?

中的重复项

4 个答案:

答案 0 :(得分:5)

您可以使用Union方法。

List<TweetEntity> tweetEntity = tweetEntity1.Union(tweetEntity2).ToList();

但是,您首先覆盖了Equals GetHashCodeTweetEntity

答案 1 :(得分:1)

您可以使用Distinct()方法。

tweetEntity1.Concat(tweetEntity2).Distinct().ToList(); 

答案 2 :(得分:1)

使用Union linq扩展名

tweetEntity1.Union(tweenEntity2).ToList()

在功能上等同于.ConcatDistinct相结合,但更容易输入和更快地运行,

答案 3 :(得分:0)

您可以使用linq Distinct方法,但是您必须实施IEqualityComparer<T>

public class TweetEntityComparer<TweetEntity> 
{
    public bool Equals(TweetEntity x, TweetEntity y)
    {
        //Determine if they're equal
    }

    public int GetHashCode(TweetEntity obj)
    {
        //Implementation
    }
}

List<TweetEntity> tweetEntity = tweetEntity1.Concat(tweetEntity2).Distinct().ToList();

您也可以使用Union

List<TweetEntity> tweetEntity = tweetEntity1.Union(tweetEntity2).ToList();