我有一个一维string []数组,如下所示
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个查询,它将返回服务器名称和组件名称的列表,如下所示
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});
Run Code Online (Sandbox Code Playgroud)
如何将查询结果插入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();
Run Code Online (Sandbox Code Playgroud)
我得到的结果是ServerID和名称的列表
更新
这是标记答案的说明。
发生的事情是它将创建一个可查询的ServerID和Name的列表,然后将其转换为Enumerable并使用.Select()扩展名创建一个字符串列表,并将其转换为字符串数组,然后选择new {a.ServerID,b.Name }->创建具有ServerID和Name属性的匿名类型的列表/ iqueryable。
AsEnumerable()->将其转换为Enumerable,这样我们就可以使用string.Format,因为从SQL到LINQ不支持string.Format
Select(x => string.Format(“ {0}-{1}”,x.ServerID,x.Name))->做一个Select以便使用ServerID和Name创建一个String列表
ToArray()->在那里简单地将其转换为String []。
尝试创建一个新的字符串并将其转换为您选择的字符串数组。
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}).AsEnumerable().Select(x=> string.Format("{0} - {1}",x.ServerID, x.Name)).ToArray();
string[] header = query;
Run Code Online (Sandbox Code Playgroud)