我正在使用返回数组的Linq来读取配置文件。
单个函数中有Linq查询,一个是返回端口号,另一个是项目名。该函数以二维数组(或任何东西)返回。
public string[][] GetProjectsPorts(string cruiseControlPath)
{
var projectNames = (from item in xdoc.Elements("project")
select item.Attribute("name").Value).ToArray();
var portNumber = (from item in xdoc.Elements("system.runtime.remoting").
Elements("application").Elements("channels").Elements("channel")
select item.Attribute("port").Value).ToArray();
return ??
}
问题是,我如何将两个数组放入一个2D数组中.....
另一种选择是将其作为字典返回,但它可以有多个相同的项目名称。
Thanx的建议。
答案 0 :(得分:4)
我建议将{Project,Port}对封装在一个单独的数据类型中,并返回该类型的数组(或列表)。除此之外,端口号可以是数字而不是字符串:)
如果你使用的是.NET 4,你可以使用Tuple<string, int>
,但是如果要使用它很多,你应该考虑为了可读性而创建自己的类型(属性“Project”和“Port”比“Item1”和“Item2”更清晰。
答案 1 :(得分:0)
像这样: -
return new string[][] { projectNames, portNumber};