none
Сортировка массива структур C# RRS feed

  • Вопрос

  • есть структура 

     struct ExpertMark
        {
            public int first;
            public double sec;
            public double thr;
            public string four;
        }
    потом создаю array list 
    private ArrayList mass;
    
            public  Delphi()
            {
                mass = new ArrayList();
            }

    Вопрос: как отсортировать массив структур?

    2 ноября 2015 г. 12:18

Ответы

  • Ну есть класс, ну есть функции... Для чего использовать ArrayList не пойму... Что мешает объявить член класса Delphi mass листом или другим классом, будет удобней  и проще с ним работать...

    строку private ArrayList mass; заменить на private List<ExpertMark> mass; mass = new ArrayList(); на mass = new List<ExpertMark>(); ExpertMark mark = (ExpertMark)mass[i]; sum += mark.first; на sum += mass[i].first;

    добавление элемента приблизительно следующее

    mass.Add(new ExpertMark() { first=33, sec=0.15 });

    А как сортировать List - ну просто огромная куча примеров в интернете

    2 ноября 2015 г. 16:19

Все ответы

  • Можно воспользоваться сортировкой с помощью своего компаратора.

    VB.Net - WPF, UWP

    2 ноября 2015 г. 12:34
    Отвечающий
  • не могли бы вы навести пример на моем коде. т.к. уже читал справку, но не до конца понятно
    2 ноября 2015 г. 12:38
  • А на данный вопрос форума и ответы на него смотрели?
    2 ноября 2015 г. 13:01
  • видел. не могу применить к своему коду
    2 ноября 2015 г. 13:26
  • видел. не могу применить к своему коду
     А я не увидела в вашем коде связки ExpertMark и ArrayList, поэтому и предложила посмотреть на данный вопрос, так как ArrayList уже давно устарел, вместо него используют List<T> или как в указанном мной вопросе через массив объектов определенного типа.

    P.S. вот нашла пример про сортировку тут.
    • Изменено Liliya Muray 2 ноября 2015 г. 14:22
    2 ноября 2015 г. 14:14
  •     struct ExpertMark
        {
            public int first;
            public double sec;
            public double thr;
            public string four;
        }
    
        class Delphi
        {
            private double mediana;
            private double max;
            private double min;
            private int index;
            private double kvartul;
            private double foot_lim;
            private double head_lim;
            private double dov_interval;
            private ArrayList mass;
    
            public  Delphi()
            {
                mass = new ArrayList();
            }
    
    
    
            public void addData(ExpertMark value)
            {
                mass.Add(value);
            }
                       
            public  double serGrouoMark()
            {
                double sum = 0;
                for (int i = 0; i < mass.Count; i++)
                {
                    ExpertMark mark = (ExpertMark)mass[i];
    
                    sum += mark.first;
                }
                sum = sum / mass.Count;
                return sum;
    
            }
    
            public double serPos()
            {
                double sum = 0;
                for (int i = 1; i < mass.Count; i++)
                {
                    ExpertMark mark = (ExpertMark)mass[i];
                    sum += mark.sec;
    
                }
                sum = sum / mass.Count;
                return sum;
            }
    
            public double serPop()
            {
                double sum = 0;
                for (int i = 1; i < mass.Count - 1; i++)
                {
                    
                    ExpertMark mark = (ExpertMark)mass[i];
                    sum += mark.first * mark.sec;
                   
    
                }
    
                sum = sum / mass.Count;
                return sum;
            }
    
    вот код. буду благодарен если Вы  по колдуете и все заработает.
    2 ноября 2015 г. 14:56
  • Ну есть класс, ну есть функции... Для чего использовать ArrayList не пойму... Что мешает объявить член класса Delphi mass листом или другим классом, будет удобней  и проще с ним работать...

    строку private ArrayList mass; заменить на private List<ExpertMark> mass; mass = new ArrayList(); на mass = new List<ExpertMark>(); ExpertMark mark = (ExpertMark)mass[i]; sum += mark.first; на sum += mass[i].first;

    добавление элемента приблизительно следующее

    mass.Add(new ExpertMark() { first=33, sec=0.15 });

    А как сортировать List - ну просто огромная куча примеров в интернете

    2 ноября 2015 г. 16:19