C# 通过LINQ查询将ServiceController对象绑定到列表

C# 通过LINQ查询将ServiceController对象绑定到列表,c#,linq,C#,Linq,我有一门四弦的课。我尝试使用ServiceController遍历每个Windows服务,然后将其绑定到类对象列表 这两个选项中哪一个更好,以及如何做到这两个 我的目标是将此列表作为数据源绑定到Gridview public class ServiceDetails { public string ServiceName { get; set; } public string Status { get; set; } public string Description {

我有一门四弦的课。我尝试使用ServiceController遍历每个Windows服务,然后将其绑定到类对象列表

这两个选项中哪一个更好,以及如何做到这两个

我的目标是将此列表作为数据源绑定到Gridview

public class ServiceDetails
{
    public string ServiceName { get; set; }
    public string Status { get; set; }
    public string Description { get; set; }
    public string Location { get; set; }
}


protected void GetAllServices(string machinename)
{
    ServiceController[] services = ServiceController.GetServices(machinename);
    List<ServiceDetails> svcdetails = new List<ServiceDetails>();

    // option 1 - to iterate through each and bind to list
    foreach (ServiceController service in services)
    {
        //How to bind the servicecontroller object to a list.?
    }

    // option 2 - Bind the List using LINQ query
    List<ServiceDetails> items = svcdetails.ForEach(service=> LINQ Query...?

    Gridview.DataSource = items;            
    Gridview.DataBind(); 
}
公共类服务详细信息
{
公共字符串ServiceName{get;set;}
公共字符串状态{get;set;}
公共字符串说明{get;set;}
公共字符串位置{get;set;}
}
受保护的void GetAllServices(字符串machinename)
{
ServiceController[]服务=ServiceController.GetServices(machinename);
List svcdetails=新列表();
//选项1-迭代每个选项并绑定到列表
foreach(服务中的ServiceController服务)
{
//如何将servicecontroller对象绑定到列表。?
}
//选项2-使用LINQ查询绑定列表
List items=svcdetails.ForEach(服务=>LINQ查询…?)。。。?
Gridview.DataSource=项目;
Gridview.DataBind();
}

请确保已添加以下内容:

using System.Linq;
var items = services.Select(s=>new ServiceDetails{
 ServiceName = s.ServiceName,
 Status = s.Status,
 Description = s.Description,
 Location = s.Location
}).ToList();
然后执行以下操作:

using System.Linq;
var items = services.Select(s=>new ServiceDetails{
 ServiceName = s.ServiceName,
 Status = s.Status,
 Description = s.Description,
 Location = s.Location
}).ToList();
我假设类ServiceController的属性名。然后

Gridview.DataSource = items;
完成此操作后,您必须在View/aspx页面中配置列映射