我遇到了这个
cityOrigen
并且想知道
如何使用上述代码行(List().Join()
右侧)中的Join()
部分?
这类似于以下内容:
List
...但它有一个更复杂的IntelliSense工具提示,如下所示:
答案 0 :(得分:6)
.NET中没有实例或扩展方法可用于将String.Join
连接在一起的字符串序列。如果你想要这样的扩展方法,你必须自己编写它(这应该很简单,因为内部所有需要做的就是调用string.Join
)。
Enumerable.Join
,这是您在IEnumerable<T>
上看到的方法,它指的是集合上下文中的Join,就像SQL所做的那样,并且是一种非常不同的操作。
答案 1 :(得分:2)
Join
是类String
的常规静态方法。您要使用的语法只能与扩展方法一起使用。如果你真的坚持能够像使用它那样简单地创建自己的:
public static class MyExtensions
{
public static string Join(this IEnumerable<string> enumeration, string separator)
=> string.Join(separator, enumeration);
}
答案 2 :(得分:1)
执行此操作,现在您拥有所需的语法。
public static class ExtensionMethods
{
public static string Join(this IEnumerable<string> stringarray, string separator)
{
return String.Join(separator, stringarray);
}
}
答案 3 :(得分:1)
问题是myList
是字符串的列表。 Join函数是一个非常特定于字符串的函数。由于列表不对列表中的内容做任何假设(例如,您可以存储整数,浮点数,用户定义的类等等),因此列表包含如此特定的函数没有任何意义只有字符串。
这就是列表没有myList.Join
的原因,因为任何内容都可能在该列表中。不幸的是,你必须坚持使用String.Join()
,因为它不像现在这样。
答案 4 :(得分:0)
您可以像这样使用IEnumerable.Aggregate
list.Aggregate((i, j) => i + j);
但是string.join是性能的优先方法。 不要试图发明自定义语法。您将失去其他C#开发人员的可读性。顺便说一句,可以使用扩展方法。