【问题标题】:String array elements OrderBy itself字符串数组元素 OrderBy 本身
【发布时间】:2016-05-11 11:04:40
【问题描述】:

如果我有这样的字符串数组:

string[] str = new string[]{"abc", "bacd", "pacds"};

然后我需要使用 LINQ 进行如下输出:

输出:abc、abcd、acdps

【问题讨论】:

  • 您能否展示一些代码来展示您迄今为止所做的尝试?你到底卡在哪里了?

标签: c# arrays linq


【解决方案1】:

这应该是你想要的:

string[] str = new string[] { "abc", "bacd", "pacds" };
var result = str.Select(c => String.Concat(c.OrderBy(d => d)));

resultIEnumerable<string>,但如果您想将结果放在字符串数组中,请添加 .ToArray()

var result = str.Select(c => String.Concat(c.OrderBy(d => d))).ToArray();

结果:

【讨论】:

    【解决方案2】:

    您可以使用String.Concat(st.OrderBy(c => c)) 按字符对字符串进行排序。

    str.ToList().ForEach((val) => {
        val = String.Concat(val.OrderBy(c => c));
    });
    

    【讨论】:

      【解决方案3】:
      str.Select(x => x.ToCharArray().OrderBy(c => c).Aggregate("", (s,c)=>s+c))
      

      【讨论】:

        【解决方案4】:

        这只是为了将数组字符串更改为按字符排序的字符串

            static void orderChars(string[] str)
            {
                for (int i = 0; i < str.Length; i++)
                    str[i] = new string(str[i].OrderBy(c => c).ToArray());
            }
        

        【讨论】:

          【解决方案5】:

          正如 bassfader 评论的那样,展示你的代码并说出你卡在哪里,然后我们可以指导你,无论如何..

          你可以这样写,

          字符串[] a = 新字符串[] {"印尼语","韩语","日语","英语","德语"};

          var sort = from s in a orderby s select s;

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-11-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-14
            • 1970-01-01
            • 1970-01-01
            • 2019-03-09
            相关资源
            最近更新 更多