如何编写一个将字符串列表作为参数的函数[重复]

Posted

技术标签:

【中文标题】如何编写一个将字符串列表作为参数的函数[重复]【英文标题】: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; 【参考方案1】:

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

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

MSDN reference

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

【讨论】:

以上是关于如何编写一个将字符串列表作为参数的函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

R中的函数:使用list参数作为字符串[duplicate]

如何将列表的所有元素作为函数的参数传递而不将列表作为参数传递

泽西岛客户端:如何添加列表作为查询参数

如何将constexpr作为函数参数传递c ++ [重复]

如何在一个条目中将RGB作为单独的参数传递给函数

javascript 编写一个以单个字符串(单词)作为参数的函数。该函数必须返回包含所有capit索引的有序列表