首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ServiceController搜索Array.Findall数组?

使用ServiceController搜索Array.Findall数组?
EN

Stack Overflow用户
提问于 2014-07-24 01:56:16
回答 1查看 278关注 0票数 0

我现在又开始用.NET编写代码了,我试图避免使用For Each循环,使用Array.Findall

我想获取安装在机器上的所有服务的数组,然后传递一个字符串来搜索匹配的友好显示名称;如果找到,返回匹配值以及它们的实际服务名称。

即传递字符串“杯”,该字符串将搜索所有服务,以查找其显示名称中有“线宽”的任何服务。我这样做是作为一种“模糊搜索”,以防不知道实际的服务名称,而且如果有多个匹配传递的字符串的服务,将不会启动/停止一组服务。

我有:

代码语言:javascript
复制
Dim strServiceName = "Calibre"  
Dim scServices() As ServiceController = ServiceController.GetServices()  
Dim value2() As String = Array.FindAll(scServices, Function(x) x.DisplayName.ToLower().Contains(strServiceName))

但是得到错误:

类型‘1维System.ServiceProcess.ServiceController’的值不能转换为‘一维字符串数组’,因为'System.ServiceProcess.ServiceController‘不是从’String‘派生出来的。“

我知道我可能错过了一些很简单的东西,但现在它在逃避我,亲爱的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-24 04:57:59

返回的Array.FindAll<T>的遗传类型与数组的遗传类型相同,即这里的ServiceController。

如果要获取所有服务的名称,其中包含其DisplayName中的特定名称,则应从ServiceController中选择DisplayName,如下所示:

代码语言:javascript
复制
Dim value2() As String = Array.FindAll(scServices, Function(x) x.DisplayName.ToLower().Contains(strServiceName))
                              .Select(Function(x) x.DisplayName).ToArray()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24923911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档