【问题标题】:How to convert an IOrderedEnumerable<char> to string in c#? [duplicate]如何在 C# 中将 IOrderedEnumerable<char> 转换为字符串? [复制]
【发布时间】:2017-07-05 12:34:32
【问题描述】:

我需要按字母顺序对字符串进行排序。我发现最常见的解决方案是使用 linq:

var sortedString = unsortedString.OrderBy(c => c);

这个解决方案的问题是结果不是字符串。结果是需要转换的 IOrderedEnumerable。这不起作用:

var sortedString = unsortedString.OrderBy(c => c).ToString();

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    字符串是一个字符序列。所以

    unsortedString.OrderBy(c => c)
    

    也返回有序字符序列。 IE。 IEnumerable&lt;char&gt;。您应该从这些有序字符创建一个新的字符串实例:

    var sortedString = new String(unsortedString.OrderBy(c => c).ToArray());
    

    当您在字符序列上使用ToString() 时,您只会得到该序列的类型名称。

    【讨论】:

      【解决方案2】:

      另一种方式是String.Concat,它使用StringBuilder

      string sortedString = String.Concat(unsortedString.OrderBy(c => c));
      

      String.Join(我更喜欢不带分隔符的Concat):

      string sortedString = String.Join("", unsortedString.OrderBy(c => c));
      

      【讨论】:

        猜你喜欢
        • 2015-07-04
        • 2016-09-05
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多