写一个方法 FindPoorer() C#

Write a method FindPoorer() C#

谁能解释一下如何处理这段代码?我已经写了 FindFisrtitem() 但是 FindPoorer() 我有一个问题...

1.I需要写一个方法FindPoorer();。方法必须找到最低账户余额,如果找不到,方法需要 return“Basia”。

  1. 同样的问题,但方法需要 return null。

我不期望 100% 解决任务,而是一个提示

using System;
namespace Poorer
{
   class Item
   {
       public Item PreviousItem { get; set; }

       public string Name { get; set; }

       public double AccountBalance { get; set; }

       public Item(string name, double balance, Item prevItem)
       {
           Name = name;
           AccountBalance = balance;
           PreviousItem = prevItem;
       }

       internal Item AddItem(string v1, int v2)
       {
           return new Item(v1, v2, this);
       }

       internal Item FindFirstItem()
       {
           //if (PreviousItem == null)
           //{
           //    return this;
           //}
           //return PreviousItem.FindFirstItem();

           var curr = this;

           while (true)
           {
               if (curr.PreviousItem == null)
               {
                   return curr;
               }
               curr = curr.PreviousItem;
           }
       }

       internal Item FindPoorer()
       {


          if(AccountBalance > 0)
           {
               return ;  
           }
           return FindPoorer(); 
       }
   }

   class ListExcercise
   {
       static void Main(string[] args)
       {
           var basia = new Item("Basia", 100, null);
           var kasia = basia.AddItem("Kasia", 50);
           var isia = kasia.AddItem("Isia", 40);
           var isia2 = isia.AddItem("Isia2", 20);
           var isia3 = isia2.AddItem("Isia3", 40);

           var first = isia3.FindFirstItem();
            var poorer = isia3.FindPoorer();


           Console.WriteLine("The poorer person is: " + poorer.Name);
       }



   }
}

就像在 FindFirstItem() 中那样循环遍历列表。
将当前项目与最差项目(截至目前)进行比较,然后在到达列表末尾时 return 它。

这里不需要使用递归。

伪代码:

internal Item FindPoorer()
{
    var curr = this;
    var poorest = this;
    while (true)
    {
        if (curr.balance < poorest.balance)
        {
            poorest = curr;
        }
        if (curr.PreviousItem == null)
        {
            return poorest;
        }
        curr = curr.PreviousItem;
    }
}