【问题标题】:How to write a function that takes a list of strings as a parameter [duplicate]如何编写一个将字符串列表作为参数的函数[重复]
【发布时间】:2018-11-18 06:45:22
【问题描述】:

我想创建一个函数,它将字符串列表作为参数,将它们连接成一个字符串,每个元素用逗号分隔,然后返回结果。例如,如果将数组[“asdf”, “jkl”, “zxc”]传递给函数,它将返回一个字符串“asdf, jkl, zxc”

在 C# 中,我的函数签名如下所示:

string MySolution(string[] inputStrings)

{
  List<string> cities = new List<string>();
        cities.Add("New York");
        cities.Add("Mumbai");
        cities.Add("Berlin");
        cities.Add("Istanbul");

        string line = string.Join(",", cities.ToArray());
        Console.WriteLine(line);
}

--我只是在用户输入时遇到问题,用户将在其中输入值,而不是代码中显示的静态。我将不胜感激有关此的任何建议或答案。这也保留在我申请的公司中作为测试。

【问题讨论】:

  • 您在寻找string.Join吗?例如return string.Join(", ", inputStrings);
  • 是的。我想创建一个将字符串列表作为参数的函数,它必须适用于传递给它的任何数组
  • @Aries 这就是String.Join 所做的。你不需要创建一个新的。检查its source code 以了解它如何处理任何集合或变量参数列表
  • Currying 方法虽然非常有用。您可以创建自己的,例如 JoinComma 作为public static string JoinComma(IEnumerable&lt;string&gt; items)=&gt;String.Join(",",items); 或使用本地函数string commaJoins(IEnumerable&lt;string&gt; items)=&gt;String.Joins(",",items);。或者您可以使用类似的语法来创建 Func&lt;IEnumerable&lt;string&gt;,string&gt; commaJoiner= items=&gt;String.Join(",",items);
  • @Aries 您可以通过创建一个接受分隔符并返回Func&lt;IEnumerable... 的函数来概括这一点,例如Func&lt;IEnumerable&lt;string&gt;,string&gt; curryJoiner(string sep){ Func&lt;IEnumerable&lt;string&gt;,string&gt; myJoiner= items=&gt;String.Join(sep,items); return myJoiner;}

标签: c# asp.net vb.net


【解决方案1】:

您不需要方法。你已经得到了:

string myJoinedString = String.Join(",", myStrings);

MSDN reference

这里没有理由将String.Join 包装在一个方法中。附加层只不过是一个空心包装纸。除非您想开始添加其他逻辑(错误处理、自定义分隔符逻辑......),但这不是您当前问题的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多