【问题标题】:How to sort string based on substring with C#?如何使用 C# 根据子字符串对字符串进行排序?
【发布时间】:2021-12-23 07:26:46
【问题描述】:

我有一个字符串

string myStr = "*20@Apple#*10@Banana#*-5@Orange#*8@Cherries#";

我想要一个仅包含此字符串中水果名称的数组,但应根据与其关联的值对其进行排序。

例如在这个字符串中

Apple => 20
Banana => 10
Orange => -5
Cherries => 8

我想要这个数组作为结果

橙子、樱桃、香蕉、苹果

谢谢!

【问题讨论】:

  • 拆分、拆分、排序
  • 1.将数据提取到您可以更轻松地使用的结构中(即水果及其值的列表) 2. 根据值对列表进行排序。 3. 从排序好的列表中选择水果,返回string数组。
  • 还有:为什么apple、banana和orange都是单数,而cherries是复数?
  • 任何你不知道答案的原因

标签: c# .net


【解决方案1】:
var input = "*20@Apple#*10@Banana#*-5@Orange#*8@Cherries#";

var result = input
      .Split(new []{'#','*' }, StringSplitOptions.RemoveEmptyEntries)
      .Select(x => x.Split('@'))
      .Select(x => (Rank : int.Parse(x[0]), Value : x[1]))
      .OrderBy(x => x.Rank)
      .Select(x => x.Value)
      .ToArray();

Console.WriteLine(string.Join(", ",result));

输出

Orange, Cherries, Banana, Apple

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 2015-08-13
    • 1970-01-01
    • 2021-10-13
    • 2015-09-11
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多