#c# #arrays #multidimensional-array
#c# #массивы #многомерный массив
Вопрос:
Я новичок в этом и очень смущен. Как мне установить arr[55000][7], сохранить значения на сервере (используя ASP.NET с помощью C #) и при необходимости увеличивайте диапазон массивов. Я не нашел способа изменить размер двумерного массива в C #.
Кроме того, мое требование:
Variable Name Values
Variable 1 = ( 2, 4) , ( 5, 1)
Variable 2 = ( 7, 4) , ( 1, 3)
Variable 3 = ( 5, 7) , ( 5, 1)
Variable 4 = ( 2, 4) , ( 2, 1)
Variable 5 = ( 9, 8) , ( 2, 4)
Variable 6 = ( 3, 4) , ( 5, 7)
Variable 7 = ( 4, 7) , ( 4, 2)
Variable 8 = ( 5, 4) , ( 5, 7)
Etc….
(This data will be stored on server.)
Now for example user give input variable 1, 4, 5, 7
The calculator will show result =( 2, 4).
Я приступаю к работе над этим, но без посторонней помощи. Кто-нибудь может помочь мне в этом, пожалуйста
Комментарии:
1. Массивы не могут изменяться в размере при использовании c #
List<T>
вместо2. Начиная с .NET 2.0, Array.Resize() можно использовать для перераспределения массива. Array.Resize() создает новый массив, копирует содержимое старого массива в новый массив и заменяет переданную ссылку на массив ссылкой на новый массив.
3. Спасибо Nils и schgab, я действительно ценю, если вы можете привести мне пример по этому вопросу.
4. Используйте List<T> , вы сможете динамически добавлять или удалять элементы и избавите себя от многих проблем.
5. с помощью List<T> я не смогу получить доступ к элементам, используя правильные имена переменных, если это можно сделать, я изучу это. Пожалуйста, подтвердите
Ответ №1:
Это было бы простой реализацией для списка списков:
List<List<int>> myList = new List<List<int>>();
myList.Add(new List<int>());
myList.Add(new List<int>());
myList.Add(new List<int>());
int list = 0;
int element = 6;
myList[0].Add(5);
myList[list].Add(element);
Если мы проверим мой список, то получим
Затем вы можете добавлять или удалять по своему усмотрению.
Редактировать
если вы хотите использовать строковое имя, такое как «Переменная» 1, чтобы получить или установить эти значения, нам нужно немного изменить структуру.
Сначала мы объявляем структуру для хранения значений в паре.
class Valuegroup
{
public int FirsValue { get; set; }
public int SecondValue { get; set; }
}
Тогда нам нужна пара значений ключа коллекции, где ключ должен быть уникальным. В .Net мы можем использовать структуру словаря для достижения этой цели.
Мы объявляем это следующим образом:
Dictionary<string, List<Valuegroup>> myList = new Dictionary<string, List<Valuegroup>>();
С приведенным выше объявлением мы сможем использовать ключевую строковую переменную 1, переменную 2, переменную 3 и т.д. в качестве уникального ключа. Затем мы можем добавить наши значения в виде групп в List<Valuegroup>
. Каждый элемент списка будет представлять группу элементов, таких как (2, 4) , (5, 1) и т.д.
Собрать все это вместе:
class Valuegroup
{
public int FirsValue { get; set; }
public int SecondValue { get; set; }
}
static void Main(string[] args)
{
//Variable 1 = (2, 4) , (5, 1)
Valuegroup first = new Valuegroup
{
FirsValue = 2,
SecondValue = 4
};
Valuegroup second = new Valuegroup
{
FirsValue = 5,
SecondValue = 1
};
Dictionary<string, List<Valuegroup>> myList = new Dictionary<string, List<Valuegroup>>();
myList.Add("Variable 1",new List<Valuegroup>{first,second});
//retrive a value using a key name eg Variable 1
List<Valuegroup> temp = new List<Valuegroup>();
myList.TryGetValue("Variable 1", out temp);
//do a search using Linq
var t = myList.Where(x => x.Key == "Variable 2");
}
Это показывает, что содержит myList
И здесь вы можете видеть, что получение значения с помощью key "Variable 1"
возвращает правильный результат. Тем временем выполнение поиска "Variable 2"
не дало результатов.
Комментарии:
1. Привет, Алекс, Могу ли я выполнить поиск по списку, в моем примере выше, могу ли я выполнить поиск, используя имена переменных, такие как обычный поиск по элементам в переменной 1, переменной 4, переменной 5, переменная 7 должна возвращать результат (2,4). Если вы можете сказать мне, что это возможно на небольшом примере, я начну с этого. Просто хотел убедиться, что все мои требования будут удовлетворены, если я использую списки. Пожалуйста, разъясните мне это с помощью кода, если это возможно.
2. @Deepak Я внес некоторые изменения в предлагаемое решение. Это должно предоставить вам объяснение и подход к решению вашей проблемы.