`List()上的`Join()`方法是什么。Join()`用于什么?

时间:2016-12-22 21:02:41

标签: c# arrays

我遇到了这个

cityOrigen

并且想知道

如何使用上述代码行(List().Join() 右侧)中的Join()部分?

这类似于以下内容:

List

...但它有一个更复杂的IntelliSense工具提示,如下所示:

convoluted join()

5 个答案:

答案 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#开发人员的可读性。顺便说一句,可以使用扩展方法。