コード例 #1
0
 private void immutableRadio_CheckedChanged(object sender, EventArgs e)
 {
     if (immutableRadio.Checked)
     {
         IntList    = new N6_ClassLib.SkipLibrary.ImmutableList <int>(IntList);
         StrList    = new N6_ClassLib.SkipLibrary.ImmutableList <string>(StrList);
         FlowerList = new N6_ClassLib.SkipLibrary.ImmutableList <Flower>(FlowerList);
     }
 }
コード例 #2
0
 private void linkedRadio_CheckedChanged(object sender, EventArgs e)
 {
     if (linkedRadio.Checked)
     {
         IntList    = new N6_ClassLib.SkipLibrary.LinkedList <int>();
         StrList    = new N6_ClassLib.SkipLibrary.LinkedList <string>();
         FlowerList = new N6_ClassLib.SkipLibrary.LinkedList <Flower>();
         listView.Controls.Clear();
     }
 }
コード例 #3
0
        private void typeTab_SelectedIndexChanged(object sender, EventArgs e)
        {
            //immutable по умолчанию оборачивает linkedlist, потому что он занимает меньше памяти
            if (immutableRadio.Checked)
            {
                linkedRadio.Checked = true;
                IntList             = new N6_ClassLib.SkipLibrary.LinkedList <int>();
                StrList             = new N6_ClassLib.SkipLibrary.LinkedList <string>();
                FlowerList          = new N6_ClassLib.SkipLibrary.LinkedList <Flower>();
            }
            //иначе очищаем списки, чтобы не приходилось каждый элемент вручную clear'ом удалять
            else
            {
                IntList.Clear();
                StrList.Clear();
                FlowerList.Clear();
            }
            switch (typeTab.SelectedTab.Text)
            {
            case "int":
                actionIntButton.Enabled  = true;
                actionStrButton.Enabled  = false;
                actionFlwrButton.Enabled = false;
                break;

            case "string":
                actionStrButton.Enabled  = true;
                actionIntButton.Enabled  = false;
                actionFlwrButton.Enabled = false;
                break;

            case "flower":
                actionFlwrButton.Enabled = true;
                actionIntButton.Enabled  = false;
                actionStrButton.Enabled  = false;
                break;
            }
        }
コード例 #4
0
        private void actionFlwrButton_Click(object sender, EventArgs e)
        {
            IList <Flower> flowers = N6_ClassLib.SkipLibrary.ListUtils.FindAll <Flower>(FlowerList, delegate(Flower flw)
            {
                return(flw.colour != "white");
            },
                                                                                        delegate
            {
                if (arrayRadio.Checked)
                {
                    return(new N6_ClassLib.SkipLibrary.ArrayList <Flower>());
                }
                return(new N6_ClassLib.SkipLibrary.LinkedList <Flower>());
            });

            //заменяем текущий список цветов на удовлетворяющий предикату
            FlowerList = (N6_ClassLib.SkipLibrary.SkipList <Flower>)flowers;
            if (immutableRadio.Checked)
            {
                FlowerList = new N6_ClassLib.SkipLibrary.ImmutableList <Flower>(FlowerList);
            }
            FlowerList.Display(ref listView);
        }