C# 如何将字符串按字母顺序插入新数组?

C# 如何将字符串按字母顺序插入新数组?,c#,C#,我已经查找了很多视频,尝试使用冒泡排序方法、插入排序方法,但是对于这个特定的问题似乎没有任何效果。我应该向数组中添加字符串(电影名称),但我必须按字母顺序添加。我无法在数组完成后对其进行排序,必须在添加新字符串时进行排序 我见过很多类似问题的帖子,但都是在数组完成后排序的 以下是一些可能对您有所帮助的方法 private void PrintAlphabetically() { string[] movies = new string[5]; movies[0] = "b";

我已经查找了很多视频,尝试使用冒泡排序方法、插入排序方法,但是对于这个特定的问题似乎没有任何效果。我应该向数组中添加字符串(电影名称),但我必须按字母顺序添加。我无法在数组完成后对其进行排序,必须在添加新字符串时进行排序


我见过很多类似问题的帖子,但都是在数组完成后排序的

以下是一些可能对您有所帮助的方法

private void PrintAlphabetically()
{
    string[] movies = new string[5];
    movies[0] = "b";
    movies[1] = "x";
    movies[2] = "m";
    movies[3] = "a";
    movies[4] = "t";
    AddToStringArray(ref movies, "s");
    Array.Sort(movies, (x, y) => String.Compare(x , y));
    for (int i = 0; i < movies.Length; i++)
    {
        Console.WriteLine(movies[i]);
    }
}

private void AddToStringArray(ref string[] array, string item)
{
    List<string> list = array.OfType<string>().ToList();
    list.Add(item);
    array = list.ToArray();
}
private void按字母顺序打印()
{
字符串[]电影=新字符串[5];
电影[0]=“b”;
电影[1]=“x”;
电影[2]=“m”;
电影[3]=“a”;
电影[4]=“t”;
AddToStringaray(参考电影,“s”);
排序(电影,(x,y)=>String.Compare(x,y));
for(int i=0;i
好吧,与其给你答案,不如在纸上画一个空数组,然后开始在其中插入几个字符串。您很快就会发现,您需要移动一些东西,以便在适当的位置插入字符串。欢迎使用堆栈溢出。请学习如何使用堆栈溢出,并阅读如何提高问题的质量。那么你的问题是把你的源代码作为一个模板,它可以被其他人编译和测试。我发誓我已经画了两天数组了。请再给我一个提示!现在我的想法是:使用while循环检查我的名字是否大于数组中的名字,直到找到一个大于名字的名字。然后在大的名字前面插入我的名字,在小的名字后面插入我的名字。数组是固定长度的集合,包含单一类型的实例(或对实例的引用)。其他集合类型(如
列表
)允许插入;但情况并非如此。要插入到数组中,需要将插入点后的所有元素向下移动一次(如果要这样做,则从末尾开始)。要查找插入位置,请将新字符串与现有元素进行比较。一旦字符串比较大,就找到了插入点。在你的问题显示出你很容易创建一个由20个元素组成的数组之前,你不会得到一个完整的解决方案。在插入时创建一个名为curentSize的变量,遍历数组,查找第一个“较大”的元素。如果到达currentSize th元素,则在末尾添加条目并递增currentSize。如果没有,记得要把它放在哪里。然后,从末尾(currentSize)开始,向下迭代到0,将数组中的每个元素向上复制一个,直到到达插入点。将新元素放在那里并增加currentSize。为了获得额外的积分,请将这一切放在一个class
class insertablesizedaray
中,其中T是i比较感谢您的回答,但遗憾的是,我只能使用1个数组。我不能让数组已经填充。我必须添加每个特定的字符串,每次都必须按字母顺序添加。谢谢你慢慢来,对我很好,不像其他人,哈哈