gpt4 book ai didi

c# - 未知数量列表的交集 c# .net

转载 作者:行者123 更新时间:2023-11-30 19:27:01 26 4
gpt4 key购买 nike

我有一个 dictionary<int, List<string>>我想为每个 int 与所有列表相交。

我将如何实现?我觉得这应该很容易,但由于某种原因,它没有成功。

谢谢。

最佳答案

迭代列表序列很容易,将第一个放入 HashSet 中然后将每个子序列列表与它相交:

public static IEnumerable<T> intersectAll<T>(IEnumerable<IEnumerable<T>> source)
{
using (var iterator = source.GetEnumerator())
{
if (!iterator.MoveNext())
return Enumerable.Empty<T>();

var set = new HashSet<T>(iterator.Current);
while (iterator.MoveNext())
set.IntersectWith(iterator.Current);

return set;
}
}

使用这个你可以写IntersectAll(dictionary.Values.Cast<IEnumerable<string>>())得到路口。

关于c# - 未知数量列表的交集 c# .net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984812/

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