gpt4 book ai didi

c# - 合并两个 List 并使用 EF 过滤掉重复项

转载 作者:行者123 更新时间:2023-11-30 19:38:20 24 4
gpt4 key购买 nike

我有两个 List<T>具有相同 T 的对象来自两个不同数据源的对象,并希望合并这两个 List<T>对象合二为一List<T>对象并过滤掉重复项。

public class MyClass
{
public int ID { get; set; }
public string Name { get; set; }
}

public List<MyClass> MyMethod(List<MyClass> ListA, List<MyClass> ListB)
{
//would like to union ListA and ListB and filter out any duplicates by ID from ListB that are in ListA
}

最佳答案

我会使用 this answer由 Jon skeet 删除重复项。

public static IEnumerable<TSource> DistinctBy<TSource, TKey>
(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (seenKeys.Add(keySelector(element)))
{
yield return element;
}
}
}

然后

public List<MyClass> MyMethod(List<MyClass> ListA, List<MyClass> ListB)
{
return ListA.Union(ListB).DistinctBy(x => x.ID).ToList();
}

关于c# - 合并两个 List<T> 并使用 EF 过滤掉重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com