Тип возврата Select(X => X)
будет IEnumerable<string>
- не массив.Так что вам нужна еще одна перегрузка:
public String StringConcat(IEnumerable<string> parameter)
Вы, вероятно, заставите перегрузку массива вызывать эту перегрузку.
(И да, очевидно, что вы захотите использовать StringBuilder
вместо повторенияконкатенация строк - и foreach
вместо цикла for
.
Обратите внимание, что соответствующая перегрузка XDocument.Add
принимает параметр params Object[]
, а не params String[]
- и LINQ to XML работает так, что есливы пытаетесь добавить что-то, что само по себе перечислимо, как если бы вы добавляли каждый элемент по очереди.Это не часть языка - это часть реализации.Поэтому, если вы позвоните:
doc.Add(someStringArray.Select(x => x))
, то на самом деле просто вызовете XDocument.Add(object)
, который заметит , что аргумент реализует IEnumerable
.