gpt4 book ai didi

c# - 使用另一个列表的内容过滤一个列表

转载 作者:行者123 更新时间:2023-11-30 14:52:16 25 4
gpt4 key购买 nike

我有两个列表。我想使用第二个列表中的元素过滤掉第一个列表。所以我有这段代码:

 List<data> dataList = somedata;
IEnumerable<Filter> filterList = someFilterData;

然后我使用这段代码进行过滤:

foreach (var s in filterList)
{
dataList = dataList .Where(l => l.dataId!= s.Id).ToList();
}

有人可以建议这是否是一个足够好的方法,或者我们如何使用其他技术使它更好。注意:列表可能会变大,因此我们也在考虑性能。

最佳答案

你需要做的是只取那些在过滤器列表中找不到的项目。您可以使用循环以“老派”方式完成此操作:

foreach (var listItem in dataList)
{
foreach (var filterItem in filterList)
{
if (listItem == filterItem)
{
dataList.Remove(listItem);
continue;
}
}
}

或者您可以使用 LINQ 进行过滤:

dataList.Where(d => filterList.All(f => f.Id != d.dataId))

关于c# - 使用另一个列表的内容过滤一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013810/

25 4 0
文章推荐: javascript - 这个箭头怎么画?
文章推荐: c# - 使用 TPH 的 Entity Framework 的多级继承
文章推荐: c# - 为什么我不能用 List> 实例化 List
文章推荐: c# - 多线程文件压缩