arrays - 如果字符串包含字符串数组中的任何项,如何在 VB.NET 中使用 LINQ 返回 True
问题描述
我在堆栈溢出时找不到这个问题,但如果它在这里,请告诉我,我会把它记下来。
在 VB.NET 中使用 LINQ,如果字符串包含字符串数组中的一项,如何返回 True?
这是多行的代码。您如何在 VB.NET 中使用 LINQ 一行代码来做到这一点?
Sub Main
Dim endPointTimeoutText As Array = {"endpoint timeout", "endpoint is not available"}
Dim strResult As String = "endpoint is not available sample text."
Dim booleanResult As Boolean = False
For Each item As String In endPointTimeoutText
If strResult.Contains(item) Then
booleanResult = True
Exit For
End If
Next
Console.WriteLine(booleanResult) 'Only included this for the example
End Sub
预期结果将是“真”或“假”,具体取决于字符串 (strResult) 是否包含字符串数组 (endPointTimeoutText) 中的值之一
解决方案
你在心理上把它转过来——不要问“这个字符串 X,这个数组中的哪些东西在那个字符串中”,你问“这个字符串数组,它们中的哪些在这个字符串 X 中”:
Dim whichStringsArePresent = endPointTimeoutText.Where(Function(ett) strResult.Contains(ett))
Dim firstImeoutStringFound = endPointTimeoutText.FirstOrDefault(Function(ett) strResult.Contains(ett))
Dim wasATimeout = endPointTimeoutText.Any(Function(ett) strResult.Contains(ett))
ETC
顺便说一句,如果您使事物的集合具有复数名称,它将使您的代码阅读得更好。考虑更像这样的事情:
Dim wasATimeout = endPointTimeoutTexts.Any(Function(ett) strResult.Contains(ett))
它很微妙,但在可读性方面很重要
推荐阅读
- r - 如何在使用 quantmod 函数下载的数据(股票价格)中提取 colnames
- unity3d - 将 Sprite Atlas 转换为 Unity3D 格式
- linux - 剪切行的特定部分并粘贴到另一个文件的特定部分
- react-native - 使用 Jest 模拟时找不到模块“NativeAnimatedHelper”
- haskell - 使用我的 haskell 函数解析错误以识别数字是否为素数
- c - 指针中的十六进制数组
- c++ - 从文件的每一行中获取每个单词
- javascript - 使用纯 Javascript 切换 HTML5 视频静音
- floating-point - 谷歌计算器给出奇怪的结果?
- php - 如何在排行榜中突出显示当前用户