Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-按日期对链表的项目排序_C#_Sorting_Datetime_Linked List - Fatal编程技术网

C#-按日期对链表的项目排序

C#-按日期对链表的项目排序,c#,sorting,datetime,linked-list,C#,Sorting,Datetime,Linked List,我有一个淋巴结 public class Node { public Node(Pupil pupil) { Data = pupil; Next = null; } public Pupil Data { get; set; } public Node Next { get; set; } } 上面有一个学生的出生日期。我像这样向列表中插入对象 public void Insert(Pupil pupil) {

我有一个淋巴结

public class Node
{
    public Node(Pupil pupil)
    {
        Data = pupil;
        Next = null;
    }
    public Pupil Data { get; set; }
    public Node Next { get; set; }
}
上面有一个学生的出生日期。我像这样向列表中插入对象

public void Insert(Pupil pupil)
{
    if (_head == null)
    {
        _head = new Node(pupil);
        return;
    }

    Node current = _head;

    while (current.Next != null)
    {
        current = current.Next;
    }

    current.Next = new Node(pupil);
}
但现在我有一个问题,就是如何按出生日期(瞳孔.出生日期)对学生进行排序。因为我不熟悉列表等,所以我不知道该怎么做。因为科罗纳在这里,我们基本上必须在大学里自学。
非常感谢您的帮助。

假设您有一个名为
无序列表
的对象(以无序方式包含学生)和一个名为
有序列表
的对象,该对象最初为空。然后您可以执行以下操作:

  • 无序列表的元素
    。你选择哪种元素并不重要。例如,您总是可以选择第一个(如果列表已经部分排序,这也是一个好主意)。让我们把这个元素称为
    temp
  • temp
    添加到
    orderedList
    的正确位置
  • 从无序列表中删除
    temp
  • 执行步骤1-3,直到
    无序列表
    为空
  • 这种算法称为插入排序。还包含一个C语言的实现。您可以查看一下它,了解如何在C语言中实现它


    插入排序是一种相当原始的排序方法。其他方法(如快速排序、合并排序等)可能更快,但也更难实现。

    也许在这里你可以找到解决方案:有专门的库,用于对列表和集合进行操作,与SQL中的操作非常相似,称为LINQ,在业余时间查看它,它将在任何时候帮助你university@Hesh:如果OP真的必须实现链表,那么LINQ不会有多大帮助。@Xaver哦,我没有注意到这是链表。不管怎样,他可以检查林克未来的问题。是的,当然。LINQ是一个非常好的有用的工具。很遗憾,我需要手动操作。你能给我举个例子吗?我不知道如何编写这个。我更新了我的答案。我喜欢的维基百科文章包含了一个示例性的实现。谢谢