none
Как задать числу позицию в массиве RRS feed

  • Вопрос

  • Здравствуйте, подскажите пожалуйста, как задать позицию в массиве чисел для числа не входящего в массив и вставить его туда? Язык c# Form.  
    5 апреля 2013 г. 7:50

Ответы

  • Существуют массивы, Array, размер которых фиксируется при объявлении.
    Добавлять или удалять в них ничего нельзя - не предусмотрено.

    int [] I=new int[100];
    for (int i=0;i<100;i++) I=i;

    В них можно только вносить изменения -

    I[50]=0;

    Существуют также списки, в которые можно добавлять, удалять, вставлять новые элементы или
    изменять имеющиеся.

    List<int> I=new List<int>();  // Объявление списка
    for (int i=0;i<100;i++) I.Add(i); // Создание
    I.Insert(50,0); // Вставка нового элемента
    I.Remove(50); // Удаление элемента
    I[25]=1000000; // Изменение имеющегося элемента

    В одних случаях удобнее массивы, поскольку они работают быстрее,
    в других - удобнее списки, если заранее не известно, сколько должно быть элементов.
    8 апреля 2013 г. 7:56

Все ответы

  • Вам нужен отсортированный массив? Посмотрите на SortedSet
    • Помечено в качестве ответа georgushek 8 апреля 2013 г. 10:00
    • Снята пометка об ответе georgushek 8 апреля 2013 г. 10:00
    5 апреля 2013 г. 8:48
    Отвечающий
  • в List<> есть Insert().
    Потом если надо массив, то ToArray().

    Ну или 2 массива создать.
    И потом 3-й составить из элементов 1-х 2-х массивов.

    А если нужно не вставить (то есть если условие неправильное), а заменить позицию в массиве -
    то [...] = .

    5 апреля 2013 г. 9:29
  • но с int insert нету
    5 апреля 2013 г. 11:18
  • Используйте списки (например List<> как сказали выше), массивы для этого не предназначены.
    5 апреля 2013 г. 11:54
    Отвечающий
  • У меня list уже есть как правильно его использовать в этом случае, если учитывать что все переменнын int, а в int нельзя использовать insert
    6 апреля 2013 г. 13:14
  • можно,

    а кто вам запрещает?

    вот тут вроде бы есть Insert().
    http://msdn.microsoft.com/ru-ru/library/6sh2ey19(v=vs.100).aspx

    что int что не int, какая разница?

    6 апреля 2013 г. 17:41
  • system.Array не. содержит определения для insert
    8 апреля 2013 г. 6:42
  • system.Array не. содержит определения для inser.                        

    Вот часть кода:

    privat void button4_Click(object sender, AventArgs e)

    {

    {

    string[] input = {"D"};

    List<int> list = new List <int>();

    if (openFileDialog1.ShowDialog() ==DialogResult.OK)

    {...

    name = openFileDialog1.FileName;

    string [] lines = File.ReadAllLines(openFileDialog1.FileName);

    foreach (string line in lines)

    lines.insert(5, input);

    ...

    У меня как-то так получается после чего он мне выдает ошибку


    8 апреля 2013 г. 7:00
  • Существуют массивы, Array, размер которых фиксируется при объявлении.
    Добавлять или удалять в них ничего нельзя - не предусмотрено.

    int [] I=new int[100];
    for (int i=0;i<100;i++) I=i;

    В них можно только вносить изменения -

    I[50]=0;

    Существуют также списки, в которые можно добавлять, удалять, вставлять новые элементы или
    изменять имеющиеся.

    List<int> I=new List<int>();  // Объявление списка
    for (int i=0;i<100;i++) I.Add(i); // Создание
    I.Insert(50,0); // Вставка нового элемента
    I.Remove(50); // Удаление элемента
    I[25]=1000000; // Изменение имеющегося элемента

    В одних случаях удобнее массивы, поскольку они работают быстрее,
    в других - удобнее списки, если заранее не известно, сколько должно быть элементов.
    8 апреля 2013 г. 7:56
  • А как добавить не в конце списка, а в середине, скажем 5-тым по счету?
    8 апреля 2013 г. 8:49
  • добавить я уже давно добавил
    8 апреля 2013 г. 8:50
  • "добавить в средину" - это вставка нового элемента, смотрите мой предыдущий пост.
    8 апреля 2013 г. 9:21
  • Если записать так, то не работает

    List<int>l=new List <int>();

    for(int i=0; I<100;l++)l.add(i);

    l.insert(50,0);


    • Помечено в качестве ответа georgushek 8 апреля 2013 г. 9:43
    • Снята пометка об ответе georgushek 8 апреля 2013 г. 9:43
    • Изменено georgushek 8 апреля 2013 г. 9:44
    8 апреля 2013 г. 9:42
  • Сравните каждую букву в моем примере с каждой буквой в Вашей программе.
    i и I - это разные буквы.

    8 апреля 2013 г. 10:42
  • Дело не в этом , а в том что моя переменная d находится вне цикла так-как, она еще умножается га другое число и участвует в преобразованиях списка
    8 апреля 2013 г. 10:57
  • И у меня там есть уже список, который я написал раньше ,посмотрите раньше я писал
    • Изменено georgushek 8 апреля 2013 г. 11:12
    8 апреля 2013 г. 11:02
  • Я привел Вам работоспособные примеры,
    как используются массив и список.
    Адаптировать эти примеры в Вашей программе -
    это Ваша святая обязанность.
    Потрудитесь - это полезно!

    8 апреля 2013 г. 12:08