【问题标题】:Duplicate key handling in collections集合中的重复键处理
【发布时间】:2012-11-05 14:10:00
【问题描述】:

我有一个 microsoft visual basic 集合(在命名空间 Microsoft.VisualBasic 中) - 它使用 Microsoft.VisualBasic.Dll 库。

private Collection myCollection;

当我向它添加值时,我收到以下错误:

添加失败,无法插入重复键

我该如何处理?我需要通过所有的身份证。例如,如果有一组 ID(例如 10、11、12、13、10),如果代码 10 重复,则此行失败:

myCollection.Add(myIDs.ID);  // this code throws exception

【问题讨论】:

    标签: c# asp.net .net vb.net collections


    【解决方案1】:

    http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.collection.aspx

    在添加之前,请检查集合是否已包含密钥。

    if(!myCollection.Contains(myIDs.ID))
        myCollection.Add(myIDs.ID);
    

    【讨论】:

    • 除了 TyCobb 的回答之外,您可能还需要考虑 msdn.microsoft.com/en-us/library/… 的备注部分中的注释:“只要有可能,您应该使用 System.Collections.Generic 命名空间中的通用集合或System.Collections.Concurrent 命名空间,而不是 Visual Basic 集合。"
    【解决方案2】:

    如果您想要重复项,我认为您的意思是“我需要传递所有 ID”,您可能希望使用 List 甚至更好的 List(of Integer) 而不是 Collection。

    List<int>  IntList = new List<int>;
               IntList.Add(MyIds.ID);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      相关资源
      最近更新 更多