VB.NET中如何查找字典中键的部分匹配项?
- 内容介绍
- 文章标签
- 相关推荐
本文共计489个文字,预计阅读时间需要2分钟。
在VB.NET中,要搜索字典中的一部分键,可以使用`ContainsKey`方法来判断字典中是否存在该键的一部分。以下是一个简化的示例代码,展示如何实现这一功能:
vbDim PriceList As New Dictionary(Of String, Double)(StringComparer.OrdinalIgnoreCase)PriceList.Add(Spaghetti alla carbonara, 9.99)
Function ContainsPartialKey(ByVal dictionary As Dictionary(Of String, Double), ByVal partialKey As String) As Boolean For Each key As String In dictionary.Keys If key.Contains(partialKey) Then Return True End If Next Return FalseEnd Function
' 使用示例Dim partialKey As String=carbonaraIf ContainsPartialKey(PriceList, partialKey) Then Console.WriteLine(Dictionary contains a key with the partial string ' & partialKey & '.)Else Console.WriteLine(No key in the dictionary contains the partial string ' & partialKey & '.)End If
有人可以告诉我,如何只搜索字典中的一部分键(在VB.NET中)?我使用以下示例代码:
Dim PriceList As New Dictionary(Of String, Double)(System.StringComparer.OrdinalIgnoreCase) PriceList.Add("Spaghetti alla carbonara", 21.65) PriceList.Add("Spaghetti aglio e olio", 22.65) PriceList.Add("Spaghetti alla napoletana", 23.65) PriceList.Add("Spaghetti alla puttanesca ", 24.65) PriceList.Add("Spaghetti alla gricia ", 25.65) PriceList.Add("Spaghetti alle vongole", 26.65) PriceList.Add("Spaghetti Bolognese", 27.65) If PriceList.ContainsKey("spaghetti bolognese") Then Dim price As Double = PriceList.Item("spaghetti bolognese") Console.WriteLine("Found, price: " & price) End If If Not PriceList.ContainsKey("Bolognese") Then Console.WriteLine("How can I search for only a part of a key?") End If
如果我只知道像“Bolognese”这样的关键部分,或者只是像“Bolo”这样的单词的一部分,那么如何在完整的密钥中搜索这部分?
您可以使用Any()检查是否有任何包含“Bolognese”的键的条目If Not PriceList.Where(Function(x) x.Key.Contains("Bolognese")).Any() Console.WriteLine("No Bolognese, sorry") End If
要仅使用包含“Bolognese”的键获取字典的子集:
Dim subsetOfDictionary = PriceList _ .Where(Function(x) x.Key.Contains("Bolognese")) _ .ToDictionary(Function(x) x.Key, Function(x) x.Value)
要获取包含“Bolognese”的所有条目的价格列表:
Dim pricesForAllThingsBolognese = PriceList _ .Where(Function(x) x.Key.Contains("Bolognese")) _ .Select(Function(x) x.Value) _ .ToList()
本文共计489个文字,预计阅读时间需要2分钟。
在VB.NET中,要搜索字典中的一部分键,可以使用`ContainsKey`方法来判断字典中是否存在该键的一部分。以下是一个简化的示例代码,展示如何实现这一功能:
vbDim PriceList As New Dictionary(Of String, Double)(StringComparer.OrdinalIgnoreCase)PriceList.Add(Spaghetti alla carbonara, 9.99)
Function ContainsPartialKey(ByVal dictionary As Dictionary(Of String, Double), ByVal partialKey As String) As Boolean For Each key As String In dictionary.Keys If key.Contains(partialKey) Then Return True End If Next Return FalseEnd Function
' 使用示例Dim partialKey As String=carbonaraIf ContainsPartialKey(PriceList, partialKey) Then Console.WriteLine(Dictionary contains a key with the partial string ' & partialKey & '.)Else Console.WriteLine(No key in the dictionary contains the partial string ' & partialKey & '.)End If
有人可以告诉我,如何只搜索字典中的一部分键(在VB.NET中)?我使用以下示例代码:
Dim PriceList As New Dictionary(Of String, Double)(System.StringComparer.OrdinalIgnoreCase) PriceList.Add("Spaghetti alla carbonara", 21.65) PriceList.Add("Spaghetti aglio e olio", 22.65) PriceList.Add("Spaghetti alla napoletana", 23.65) PriceList.Add("Spaghetti alla puttanesca ", 24.65) PriceList.Add("Spaghetti alla gricia ", 25.65) PriceList.Add("Spaghetti alle vongole", 26.65) PriceList.Add("Spaghetti Bolognese", 27.65) If PriceList.ContainsKey("spaghetti bolognese") Then Dim price As Double = PriceList.Item("spaghetti bolognese") Console.WriteLine("Found, price: " & price) End If If Not PriceList.ContainsKey("Bolognese") Then Console.WriteLine("How can I search for only a part of a key?") End If
如果我只知道像“Bolognese”这样的关键部分,或者只是像“Bolo”这样的单词的一部分,那么如何在完整的密钥中搜索这部分?
您可以使用Any()检查是否有任何包含“Bolognese”的键的条目If Not PriceList.Where(Function(x) x.Key.Contains("Bolognese")).Any() Console.WriteLine("No Bolognese, sorry") End If
要仅使用包含“Bolognese”的键获取字典的子集:
Dim subsetOfDictionary = PriceList _ .Where(Function(x) x.Key.Contains("Bolognese")) _ .ToDictionary(Function(x) x.Key, Function(x) x.Value)
要获取包含“Bolognese”的所有条目的价格列表:
Dim pricesForAllThingsBolognese = PriceList _ .Where(Function(x) x.Key.Contains("Bolognese")) _ .Select(Function(x) x.Value) _ .ToList()

