usuwaniem elementu z listy

0

Potrzebuję zrobić listę, do której będę dodawać nowy element o średniej mniejszej od największej średniej, która już jest na liście z informacja o liczniku. No i tak trochę utknęłam, bo nie wiem jak później usunąć element o największej średniej z tej listy. Mógłby mi ktoś powiedzieć jak mogłabym się odnieść do takiego elementu żeby go usunąć z tej listy? Wygląda to na razie tak:

 

 public struct Wynik
        {
            public double sredniad;
            public int licznikd;    
         }
List<Wynik> Najwynik;
Najwynik = new List<Wynik>();

if (srednia < Najwynik.Max(Wynik =>Wynik.sredniad))
      {
           if (Najwynik.Count == 10) Najwynik.Remove(Najwynik.max());
           Najwynik.Add(new Wynik{sredniad = srednia, licznikd = licznik});
                                       
     }
0

Tak na marginesie - to temat do Newbie... ;)
Ale prosze - maly przyklad jednej z mozliwosci.

 
class Program
    {
        static void Main( string[] args )
        {

            dosomething ( );
        }
            
            public struct Wynik
        {
            public double sredniad;
            public int licznikd;    
         }
         
        public static void dosomething()
        {

            List<Wynik> list = new List<Wynik>();
            var a = new Wynik{licznikd = 1, sredniad = 2};
            var b = new Wynik {licznikd = 2, sredniad=2.5};
            list.Add ( a );
            list.Add ( b);

            double srednia = 1;
            int licznik = 0;
            List<Wynik> Najwynik = new List<Wynik>();
            Najwynik.Add ( new Wynik { sredniad = srednia, licznikd = licznik } );

            srednia = 0.5;

            if (srednia < Najwynik.Max(Wynik => Wynik.sredniad))
              {

                  list.ForEach ( x => Najwynik.Add ( x ) );

                  Najwynik.ForEach ( x => Console.WriteLine ( x.licznikd.ToString ( ) + ", " + x.sredniad.ToString() ) );
                  Console.ReadLine();

                  Console.WriteLine ( Najwynik.Max(Wynik => Wynik.sredniad).ToString());
                  Console.ReadLine ( );
                  // znajdz i usun z listy
                  var i = Najwynik.FindIndex( x => x.sredniad == Najwynik.Max(Wynik => Wynik.sredniad));
                  Najwynik.RemoveAt ( i );

                  Najwynik.ForEach ( x => Console.WriteLine ( x.licznikd.ToString ( ) + ", " + x.sredniad.ToString ( ) ) );
                  Console.ReadLine ( );

                  Console.WriteLine ( Najwynik.Max ( Wynik => Wynik.sredniad ).ToString ( ) );
                  Console.ReadLine ( );


                // if (Najwynik.Count == 10)
                      // Najwynik.Remove( x => x.  Wynik.sredniad ) );
                 
                
 
             }
        }

    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1