如何编写一个将字符串列表作为参数的函数[重复]
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<string> items)=>String.Join(",",items);
或使用本地函数string commaJoins(IEnumerable<string> items)=>String.Joins(",",items);
。或者您可以使用类似的语法来创建 Func<IEnumerable<string>,string> commaJoiner= items=>String.Join(",",items);
或
@Aries 您可以通过创建一个接受分隔符并返回Func<IEnumerable...
的函数来概括这一点,例如Func<IEnumerable<string>,string> curryJoiner(string sep) Func<IEnumerable<string>,string> myJoiner= items=>String.Join(sep,items); return myJoiner;
【参考方案1】:
您不需要方法。你已经得到了:
string myJoinedString = String.Join(",", myStrings);
MSDN reference
这里没有理由将String.Join
包装在一个方法中。附加层只不过是一个空心包装纸。除非您想开始添加其他逻辑(错误处理、自定义分隔符逻辑......),但这不是您当前问题的一部分。
【讨论】:
以上是关于如何编写一个将字符串列表作为参数的函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
R中的函数:使用list参数作为字符串[duplicate]