Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2015, 11:33   #21
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

ArrayList это древний не generic класс из первых версий .NET, там просто object'ы хранятся.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.10.2015, 11:40   #22
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
По умолчанию

А что generic не generic?
А в List там можно доступ по индесу сделать индересно? Щас гляну.
Да можно. что это за лист в котором можно по индексу доступ делать, это уже массив а не list

Да лучше List наверно использовать, я думал в нем нету доступа по индексу
Цитата:
List<string> arr = new List<string>();
arr.Add("hellow");
arr.Add("1");
arr.Add("0.100");

for(int i=0;i<arr.Count;i++)
{
MessageBox.Show(arr[i].ToString());
}

Последний раз редактировалось ninja2; 03.10.2015 в 11:44.
ninja2 вне форума Ответить с цитированием
Старый 03.10.2015, 11:56   #23
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну generic это примерно как template в С++, при создании списка надо указать тип элементов. А в ArrayList можно любые элементы (object), при доставании надо кастовать к нужному типу и т.п.

Цитата:
что это за лист в котором можно по индексу доступ делать, это уже массив а не list
Нет, List это не только LinkedList/связный список. Тут речь об абстрактном списке.
https://ru.wikipedia.org/wiki/%D0%A1...D0%BA%D0%B0%29

Массивом обычно называют коллекции фиксированного размера. В С/С++ же тоже так. Что обычные С массивы надо перевыделять память для изменения размера, что std::array.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.10.2015, 11:59   #24
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
По умолчанию

Цитата:
Нет, List это не только LinkedList/связный список. Тут речь об абстрактном списке.
Я думал List это как в С++ std::list без доступа по индексу, а C# все включено. Один массив сделали на все случаю и не нужно заморачиваться list vector или еще что то
ninja2 вне форума Ответить с цитированием
Старый 03.10.2015, 12:10   #25
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

List тут примерно тоже самое, что std::vector.
LinkedList без индексов тоже есть.

Ну и List/std::vector не всегда лучший вариант. Иногда удобнее Stack/Queue, иногда нужен быстрый поиск и отсутствие дубликатов (HashSet), иногда Dictionary (std::map в С++) для key-value + скорости поиска по ключу как в HashSet.
Еще есть потокобезопасные коллекции https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.10.2015, 15:16   #26
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Нет, List это не только LinkedList/связный список. Тут речь об абстрактном списке.
List<T> в C# - это не абстрактный список, а вполне себе конкретная реализация. И по внутреннему устройству он ближе всего к имитации динамического массива

Цитата:
что это за лист в котором можно по индексу доступ делать, это уже массив а не list
Это может оказаться неожиданным, но в C# List<T> - это и правда обертка над массивом. Связный список - это LinkedList<T>
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 03.10.2015, 16:31   #27
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну может абстрактный список не совсем подходящее слово, я имел в виду, что под Списком совсем не всегда имеется в виду Связный Список. Бывает, что это просто "список объектов", как и написано в документации.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.10.2015, 19:19   #28
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
По умолчанию

А как правильно программу завершать?
Есть цикл который запускается по нажатию на кнопку
Код:
for(int i = 0; i < mass_url.Count; i++)
            {
                System.Windows.Forms.Application.DoEvents();
                textBox.Text += Convert.ToString(i, 10) + " url= " + mass_url[i] + "\n";
                MyNavigate(mass_url[i]);
                //получаем текст
                text = "";
                Stream stream = webBrowser.DocumentStream;
                StreamReader sr = new StreamReader(stream, Encoding.Default);
                text += sr.ReadToEnd();
                stream.Close();
                File.WriteAllText("data3.html", text, Encoding.Default);
}
При закрытии программы цикл работает, нажимаю крестик в closing у меня
Код:
void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
        //    MessageBox.Show("Closing called");
            webBrowser.Dispose();//закрываем webbrowser
            m_flag = false;
        }
и вылетает исключение. Да походу и цикл бы не закрылся. Походу мне еще нужно самому и цикл останавливать, а потом закрывать приложение?
ninja2 вне форума Ответить с цитированием
Старый 03.10.2015, 20:18   #29
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
По умолчанию

Как сделать сериализацию, вот код для примера, нужно сохранить члены класса n, str и str1 ?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Serialize
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public
            int n;
        string str;
        string str1;

        public MainWindow()
        {
            InitializeComponent();
            // проверяем нужно ли инициализировать

            //выводим
            textBox.Text = "n=" + n + "\nstr=" + str + "\nstr1=" + str1;
        }
        ~MainWindow()
        {
            //делаем сериализацию

        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            n = 10;
            str = "hellow";
            str1 = "hellow world";
        }
    }
}
ninja2 вне форума Ответить с цитированием
Старый 03.10.2015, 20:37   #30
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну по-разному можно.

Например, можно просто сохранить в файл разделяя по строкам или каким-нибудь символом типа ";", потом читать с помощью ReadAllLines или разделять строку с помощью .Split для второго.

Можно сделать отдельный класс, добавить аттрибут [Serializable] и использовать XmlSerializer.

Или в JSON с помощью Json.Net
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 15:00
Условие обработки сообщений. GPSS JavScr Помощь студентам 0 17.05.2014 23:59
QT - цикл обработки событий. Базиля Помощь студентам 6 25.10.2013 16:54
класс Screen в WPF. Есть ли такой? [?] Не добавлять же сборку Forms в WPF Casper-SC Общие вопросы .NET 2 30.07.2010 15:10
Функция обработки сообщений VVVadim Win Api 2 08.12.2008 20:46