C#试图避免重复

前端之家收集整理的这篇文章主要介绍了C#试图避免重复前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
var multiples = from i in Enumerable.Range(min,(max - min))
                        from r in roots
                        where i % r == 0
                        select i;

例如,如果roots = {2,10},它将选择20两次.

这可以避免重复吗?

解决方法

您可以使用Any()而不是完整的笛卡尔连接:
var multiples = from i in Enumerable.Range(min,(max - min))
                where roots.Any(r => i % r == 0)
                select i;

这有一个额外的好处,它一旦找到成功的元素就会停止在根中测试元素,并且它不需要第二次传递来拉出不同的元素.

猜你在找的C#相关文章