将字符串动态转换为字符串数组

Cos*_*iță 1 c# arrays string

我有一个返回字符串数组的方法.在那个方法中我只处理一个字符串,我想把它作为一个字符串数组(一个只有一个元素的字符串数组,这是我的字符串→ array[0] == myString)返回.

我想要那个,因为我想避免一些丑陋的代码用于创建一个包含一个元素的字符串数组,如下所示:

private static string[] FooterContent()
{
      string[] array = new string[1];
      array[0] = GetMyData();
      return array;        
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

private static string[] FooterContent()
{
      string myData = GetMyData();
      return myData.ToArray();        
}
Run Code Online (Sandbox Code Playgroud)

myData.ToArray()应该创建一个只有一个元素(array[0] = myString)的数组,然后返回它.

或者,类似的东西(如果可能的话):

private static string[] FooterContent()
{
     return GetMyData().ToArray();        
}
Run Code Online (Sandbox Code Playgroud)

关键是我不能简单地修改返回类型string[],string因为我使用从FooterContent(字符串数组)返回的值以及其他类似方法(如BodyContentHeadContent)到另一个WriteContent()接受字符串数组的通用方法.

这样做有一种优雅的方式吗?

谢谢你.

Jon*_*eet 8

正如w0lf在评论中建议的那样,创建数组的最简单方法就是:

return new[] { GetMyData() };
Run Code Online (Sandbox Code Playgroud)

虽然你可以创建一个扩展方法,我个人不会-如果你这样做,你绝对应该叫它ToArray,因为已经有一个意思string,由于Enumerable.ToArray与事实string器具IEnumerable<char>.

如果你真的,真的想创建这个扩展方法,我会这样做:

public static T[] ToSingleElementArray(this T value)
{
    return new[] { value };
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

return GetMyData().ToSingleElementArray();
Run Code Online (Sandbox Code Playgroud)

但正如我所说,我甚至不会创建扩展方法......