我有一个一维字符串 [] 数组如下
string[] header = new string[30];
public class GetList
{
public string ServerID;
public string Name;
public GetList(string sName, string cName)
{
this.ServerID = sName;
this.Name = cName;
}
}
我有一个查询,它将返回服务器名称和组件名称列表,如下所示
var query = (from a in this.hmdb.Servers
join b in this.hmdb.Components
on a.ServerID equals b.ServerID
select new { a.ServerID, b.Name});
如何将查询结果插入到 string[] 标头中?
编辑
当我尝试这样的事情时
var query = (from a in this.hmdb.Servers
where a.ServerID.Contains(match)
join b in this.hmdb.Components
on a.ServerID equals b.ServerID
select new
{
ID = a.ServerID,
Name = b.Name
}).ToArray();
我得到的结果是 ServerID 和 Names 的列表
更新
这是标记答案的解释..
发生的事情是它将创建一个可查询/列表的 ServerID 和 Name 然后将其转换为 Enumerable 并使用 .Select() 扩展名创建一个字符串列表并将其转换为字符串数组 select new { a.ServerID, b.Name } --> 创建一个具有 ServerID 和 Name 属性的匿名类型的列表/可查询。
AsEnumerable() --> 将其转换为 Enumerable 以便我们可以使用 string.Format 因为 SQL to LINQ 不支持 string.Format
Select(x => string.Format("{0} - {1}", x.ServerID, x.Name)) --> 执行 Select 以使用 ServerID 和名称创建字符串列表
ToArray() --> 简单地将它转换为 String[] 那里。