【问题标题】:Check keyvaluepair againt existing values in list of keyvaluepair对照键值对列表中的现有值检查键值对
【发布时间】:2010-08-22 18:17:05
【问题描述】:

如何根据现有的 KeyValuePair 列表检查新的 KeyValuePair ?我想比较一个条件以包含或排除该项目。我正在使用 vb.net 3.5

这是一个嵌套的 For 循环,我正在删除条件结果的数据行

args = (existing list of KeyValuePAir)
For Each datarow As DataRow In ds.Tables(0).Rows
Dim args2 As KeyValuePair(Of Integer, Integer) = New KeyValuePair(Of Integer, Integer)(datarow.Item("Integer1"), datarow.Item("Integer2"))

我在这里要做的是查看 args2 是否已经包含在 args 中,如果没有,我会删除数据行,但我还需要多次搜索数据行

【问题讨论】:

    标签: .net vb.net compare key-value


    【解决方案1】:

    试试

    For Each pair As KeyValuePair In pairs 
        If pair.Key == myPair.Key And pair.Value == myPair.Value Then
             'Do stuff
        End If
    Next
    

    我不确定您是否需要编写更好的相等性检查

    【讨论】:

    • 这不是很有效。如果您已经知道密钥,您需要做的就是查找它的值(如果有),并查看它是否与您已经提取的值匹配。
    • 没错,出于某种原因,我将其视为键值对列表而不是字典,只需获取特定键的值并检查您自己的值。
    • 谢谢,我在问题中添加了更多内容,因为我需要删除一个数据行,但我还需要多次搜索它。 ?
    • 恐怕我没有做足够的 VB 来理解它。我偶然用 C# 回答并翻译了它。其他人可能会给你一个更具体的解决方案
    【解决方案2】:

    我可以通过检查来解决它

     If Not args.Contains(args2) Then
                            datarow.Delete()
    
    
          ds.AcceptChanges()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多