用C#写一个方法对字符串里面的字符次数排序

namespace _7._17day01
{
    public struct MyStruct
    {
        public string _name;
        public int _count;
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "abcdacbdcbacbdacbcbacb";
            MyStruct[] myStruct = myStructs(str);
            foreach (var item in myStruct)
            {
                Console.WriteLine(item._name+"==="+item._count);
            }
        }

        public static MyStruct[] myStructs(string str)
        {
            int x = 0;
            MyStruct[] myStruct = new MyStruct[x];
            for (int i = 0; i < str.Length; i++)
            {
                bool b = true;

                for (int j = 0; j < x; j++)
                {
                    if (myStruct[j]._name.Equals(str[i].ToString()))
                    {
                        myStruct[j]._count++;
                        b = false;
                    }
                }
                if (b)
                {
                    x++;
                    Array.Resize(ref myStruct, x);
                    myStruct[x - 1]._name = str[i].ToString();
                    myStruct[x - 1]._count=1;
                }

            }

            for (int i = 0; i < myStruct.Length; i++)
            {
                for (int j = 0; j < myStruct.Length-1; j++)
                {
                    if (myStruct[j]._count > myStruct[j + 1]._count)
                    {
                        MyStruct m;
                        m= myStruct[j];
                        myStruct[j]=myStruct[j+1];
                        myStruct[j+1]=m;
                    }
                }
            }


            return myStruct;
        }
    }
}

可以将里面的冒泡排序改为

for (int i = 0; i < myStruct.Length; i++)
            {
                for (int j = 0; j < myStruct.Length-1; j++)
                {
                    if (myStruct[j]._count > myStruct[j + 1]._count)
                    {
                        MyStruct m;
                        m= myStruct[j];
                        myStruct[j]=myStruct[j+1];
                        myStruct[j+1]=m;
                    }
                }
            }

直接用            Array.Sort(myStruct,(x,y)=>x._count-y._count);替换掉 用sort方法排序

关于Array.Resize介绍

Array.Resize 是 C# 中的一个方法,它允许你改变数组的大小。这个方法定义在 System 命名空间下的 Array 类中。Array.Resize 并不是直接修改原始数组的大小,而是创建一个新的数组,并根据需要复制原始数组的内容到新数组中。

语法

public static T[] Resize<T>(ref T[] array, int newSize);

  • T[] 是数组的类型,T 是数组元素的类型参数。
  • ref T[] array 是原始数组的引用。
  • int newSize 是新数组的大小。

参数

  • array:要调整大小的数组。
  • newSize:数组的新大小。

返回值

Array.Resize 返回一个新的数组,其大小为 newSize。如果 newSize 大于原始数组的大小,新数组的额外部分将被初始化为类型的默认值。如果 newSize 小于原始数组的大小,新数组将只包含原始数组的前 newSize 个元素。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 23:16:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 23:16:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 23:16:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 23:16:03       69 阅读

热门阅读

  1. Bigdata-Docker构建大数据学习开发环境

    2024-07-17 23:16:03       18 阅读
  2. Flutter实战小案例

    2024-07-17 23:16:03       21 阅读
  3. 【读书笔记】训练自己的数据集yolov8

    2024-07-17 23:16:03       22 阅读
  4. C#自定义异常(Exception)的实现

    2024-07-17 23:16:03       24 阅读
  5. JDK 方法中的小坑

    2024-07-17 23:16:03       19 阅读
  6. LVS集群简介

    2024-07-17 23:16:03       21 阅读
  7. 类和对象-多态-纯虚函数和抽象类

    2024-07-17 23:16:03       19 阅读
  8. 建筑产业网元宇宙的探索与实践

    2024-07-17 23:16:03       21 阅读
  9. 微信小程序加载动画文件

    2024-07-17 23:16:03       26 阅读
  10. 刷题记录:LeetCode 925.长按键入

    2024-07-17 23:16:03       21 阅读
  11. 实际项目中JVM调优

    2024-07-17 23:16:03       17 阅读