【发布时间】:2011-11-30 13:19:51
【问题描述】:
我希望将两个字符串数组的内容合并到一个新列表中,该列表将两者的内容连接在一起。
string[] days = { "Mon", "Tue", "Wed" };
string[] months = { "Jan", "Feb", "Mar" };
// I want the output to be a list with the contents
// "Mon Jan", "Mon Feb", "Mon Mar", "Tue Jan", "Tue Feb" etc...
我该怎么做?因为当它只有两个数组时,以下工作很简单:
List<string> CombineWords(string[] wordsOne, string[] wordsTwo)
{
var combinedWords = new List<string>();
foreach (var wordOne in wordsOne)
{
foreach (string wordTwo in wordsTwo)
{
combinedWords.Add(wordOne + " " + wordTwo);
}
}
return combinedWords;
}
但我希望能够传入不同数量的数组(即有一个带有下面签名的方法)并让它仍然有效。
List<string> CombineWords(params string[][] arraysOfWords)
{
// what needs to go here ?
}
或者其他一些解决方案会很棒。如果可以简单地使用 Linq 做到这一点,那就更好了!
【问题讨论】:
-
params string[]表示“不同数量的 字符串,而不是数组。params string[][]是您所需要的。 -
您已将方法的签名更改为
static List<string> CombineWords(IEnumerable<string[]> arraysOfWords),因为params string[] arraysOfWords表示1 个或多个string类型的参数 -
谢谢,'params string[][]' 就是我的意思。我已经对其进行了编辑以显示这一点。