我有一个逗号分隔的服务名列表我需要停止但在此之前我想检查它们是否全部存在于系统上。如何获取使用LINQ不存在的那些服务的名称。
我调查了这个,但它只检查一个服务名称而不是完整的列表。 Check if a service exists on a particular machine without using exception handling
答案 0 :(得分:1)
ServiceController[] services = ServiceController.GetServices();
var availableServices = services.Select(service => service.ServiceName).ToList();
// This is the comma separated List
string commaSeperatedList = "Service1,Service2,Service3";
var servicesToStop = commaSeperatedList.Split(',');
List<string> notPresentServices = servicesToStop.Where(serviceToStop => availableServices.Contains(serviceToStop) == false).ToList();
我们只是检查一个列表中的哪些项目未包含在另一个列表中。