【问题标题】:Inserting a string method into an string array将字符串方法插入字符串数组
【发布时间】:2015-04-13 12:53:06
【问题描述】:

我正在尝试为一组值进行选择,每个方法都返回一个字符串数组,我试图将其放入主字符串数组中。代码如下:

string[] array = { MethodA1(), MethodA2(), MethodA3() };

我正在尝试创建 string[] 数组,只有一项。这有效:(但它只允许用户显示/选择一个值)

string[] array = MethodA1();

谁能想出一种方法让多个方法返回到一个数组中?

【问题讨论】:

标签: c# arrays


【解决方案1】:

这样的?

string[] array = MethodA1().Concat(MethodA2()).Concat(MethodA3()).ToArray();

编辑:从您的 cmets 看来,您实际上是在尝试实现完全不同的目标:根据参数选择其中一种方法的结果。你的意思是这样的吗?

private string[] SelectFiles(object userInput)
{
    string[] array;

    if (userInput == 1)
    {
        array = MethodA1();
    }
    else if (userInput == 2)
    {
        array = MethodA2();
    }
    else
    {
        array = MethodA3();
    }

    return array;
}

【讨论】:

  • 感谢回复,是否可以选择特定的方法而不是全部显示? :)
  • 你的问题不就是string array = MethodA1()吗?我认为您可能需要提供一些具体示例来说明您要达到的目标,因为我不确定我是否理解您的问题。
  • 对不起,字符串数组中的项目是文件,一旦放入 string[] 数组,然后将它们发送到另一个方法,该方法根据用户的选择将它们按升序或降序排序。我尝试了一个 if 语句,例如 'if(userInput == 1) { string[] array = {MethodA1();} ',但我无法从 IF 语句中返回数组。希望对您有所帮助?
  • 我认为您应该编辑您的问题以包含此内容和一些上下文(例如更多代码!)。您询问了如何组合多种方法的结果,但听起来您实际上想根据其他一些参数来选择要执行的方法。问题中没有明确表达这些。
【解决方案2】:

您可以使用SelectMany 将所有内容扁平化为单个string[]

string[] array = (new[] { MethodA1(), MethodA2(), MethodA3() })
    .SelectMany(a => a)
    .ToArray();

【讨论】:

  • @LasseV.Karlsen - 已修复。
【解决方案3】:

也许你应该考虑

List<string>

你可以简单地使用

myList.AddRange(stringArrayMethod());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多