获取两个大列表之间的所有不匹配元素

程序先生

我有dictionary<string, Foo>X个元素。词典密钥包含Foo.Id我还有一个List<Foo> newFoos,在我的情况下,它包含的元素比字典少一些。因此,我想做的是拥有一个List<Foo>包含所有newFoos但不在字典中的元素的新内容

我通过使用以下方法解决了这个问题:

var list = MyDict.Where(x => newFoos.All(y => y.Id != x.Key)).ToList();

但是在我看来,这是性能问题,它一定是更简便,更快捷的方法吗?并且请不要通过使用Except / Intersect并覆盖Equals

    public class Program {

    public static Dictionary<int, Foo> MyDict { get; set; } = new Dictionary<int, Foo>(); 
    private static void Main(string[] args) {
        for (int i = 0; i < 2000; i++) {
            MyDict.Add(i, new Foo() {Id = i});
        }

        var newFoos = new List<Foo>();
        for (int i = 0; i < 1500; i++) {
            newFoos.Add(new Foo() { Id = i });
        }

        var list = MyDict.Where(x => newFoos.All(y => y.Id != x.Key)).ToList();
    }
}

public class Foo  {

    public int Id { get; set; }

    //More properties

}

当使用上面的测试代码时,我发现它并没有那么慢,但是原理是一样的

吉尔伽美什
var list = newFoos.Where(x => !MyDict.ContainsKey(x.Id)).ToList();

这应该更有效,因为检查键是否在字典中比在列表中查找项目要快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从两个列表中获取元素的所有组合?

来自分类Dev

如何返回两个列表之间的不匹配项

来自分类Dev

优化两个列表之间的元素明智模糊匹配

来自分类Dev

查找两个长度不同的列表之间所有匹配项的索引

来自分类Dev

在Scala中的两个列表之间交换元素时生成所有可能性

来自分类Dev

匹配两个大括号之间的所有括号

来自分类Dev

提取两个匹配词之间的所有词

来自分类Dev

获取两个列表之间的所有可能组合,包括多个连接

来自分类Dev

返回与两个条件匹配的所有值的列表

来自分类Dev

在两个元素之间的列表中查找所有元素(不使用索引,并且带有环绕)

来自分类Dev

两个列表之间没有重复的公共元素

来自分类Dev

获取两个日期之间的所有月份

来自分类Dev

JavaScript:获取两个日期之间的所有月份?

来自分类Dev

每天获取两个日期之间的所有订单

来自分类Dev

sparql获取两个日期之间的所有月份

来自分类Dev

如果两个逗号之间有匹配项,如何匹配两个逗号之间的所有内容?

来自分类Dev

如何使用python有效地匹配两个大列表之间的字符串?(510.000.000比较)

来自分类Dev

Scala:获取具有两个限制的列表元素

来自分类Dev

如何获取两个修订版之间的所有变更列表(包括集成的变更列表)?

来自分类Dev

匹配列表的前两个元素

来自分类Dev

列表之间的两个公共元素

来自分类Dev

匹配两个单词之间的所有内容,而匹配的最后一个单词是可选的

来自分类Dev

是否有一个DOM函数删除两个元素之间的所有元素?

来自分类Dev

Python匹配两个列表之间的列表元素中的部分字符串

来自分类Dev

需要从两个列表中获取匹配和不匹配结果

来自分类Dev

从具有两个元素的数组中获取与匹配元素不匹配的值

来自分类Dev

如何在React中找到两个嵌套数组之间的不匹配元素

来自分类Dev

查找两个列表x和y之间的配对的所有组合,以使y中的所有元素与x中的一个正好配对

来自分类Dev

Java获取arraylist中两个元素之间的元素子列表

Related 相关文章

  1. 1

    从两个列表中获取元素的所有组合?

  2. 2

    如何返回两个列表之间的不匹配项

  3. 3

    优化两个列表之间的元素明智模糊匹配

  4. 4

    查找两个长度不同的列表之间所有匹配项的索引

  5. 5

    在Scala中的两个列表之间交换元素时生成所有可能性

  6. 6

    匹配两个大括号之间的所有括号

  7. 7

    提取两个匹配词之间的所有词

  8. 8

    获取两个列表之间的所有可能组合,包括多个连接

  9. 9

    返回与两个条件匹配的所有值的列表

  10. 10

    在两个元素之间的列表中查找所有元素(不使用索引,并且带有环绕)

  11. 11

    两个列表之间没有重复的公共元素

  12. 12

    获取两个日期之间的所有月份

  13. 13

    JavaScript:获取两个日期之间的所有月份?

  14. 14

    每天获取两个日期之间的所有订单

  15. 15

    sparql获取两个日期之间的所有月份

  16. 16

    如果两个逗号之间有匹配项,如何匹配两个逗号之间的所有内容?

  17. 17

    如何使用python有效地匹配两个大列表之间的字符串?(510.000.000比较)

  18. 18

    Scala:获取具有两个限制的列表元素

  19. 19

    如何获取两个修订版之间的所有变更列表(包括集成的变更列表)?

  20. 20

    匹配列表的前两个元素

  21. 21

    列表之间的两个公共元素

  22. 22

    匹配两个单词之间的所有内容,而匹配的最后一个单词是可选的

  23. 23

    是否有一个DOM函数删除两个元素之间的所有元素?

  24. 24

    Python匹配两个列表之间的列表元素中的部分字符串

  25. 25

    需要从两个列表中获取匹配和不匹配结果

  26. 26

    从具有两个元素的数组中获取与匹配元素不匹配的值

  27. 27

    如何在React中找到两个嵌套数组之间的不匹配元素

  28. 28

    查找两个列表x和y之间的配对的所有组合,以使y中的所有元素与x中的一个正好配对

  29. 29

    Java获取arraylist中两个元素之间的元素子列表

热门标签

归档