Ввод и получение значений из массивов в одном ConcurrentDictionary с C#
До этого момента я использовал простые массивы для ввода и получения необходимой информации.
Первый пример следующий:
// ===Example 1. Enter info ////
string[] testArr1 = null;
testArr1[0] = "ab";
testArr1[1] = "2";
// ===Example 1. GET info ////
string teeext = testArr1[0];
// =======================
и второй пример:
// ====== Example 2. Enter info ////
string[][] testArr2 = null;
List<int> listTest = new List<int>();
listTest.Add(1);
listTest.Add(3);
listTest.Add(7);
foreach (int listitem in listTest)
{
testArr2[listitem][0] = "yohoho";
}
// ====== Example 2. Get info ////
string teeext2 = testArr2[0][0];
// =======================
Но сейчас я пытаюсь назначить идентификационный номер каждому массиву, чтобы я мог идентифицировать несколько разных массивов в одном ConcurrentDictionary.
Как вы вводите и получаете информацию из массива в словаре?
Посмотрите, у нас есть два идентификатора и два словаря:
decimal identifier1 = 254;
decimal identifier2 = 110;
ConcurrentDictionary<decimal, string[]> test1 = new ConcurrentDictionary<decimal, string[]>();
ConcurrentDictionary<decimal, string[][]> test2 = new ConcurrentDictionary<decimal, string[][]>();
Я представлял что-то вроде этого:
//////////Example 1
//To write info
test1.TryAdd(identifier1)[0] = "a";
test1.TryAdd(identifier1)[1] = "b11";
test1.TryAdd(identifier2)[0] = "152";
//to get info
string value1 = test1.TryGetValue(identifier1)[0];
string value1 = test1.TryGetValue(identifier2)[0];
//////////Example 2
//To write info: no idea
//to get info: no idea
PS: приведенный выше код не работает (так как он самодельный).. так, как правильно вводить информацию в string[] и string[][] в ConcurrentDictionary по идентификатору? (и вытащить это)
1 ответ
Учитывая ваши заявления
decimal identifier1 = 254;
decimal identifier2 = 110;
ConcurrentDictionary<decimal, string[]> test1 = new ConcurrentDictionary<decimal, string[]>();
ConcurrentDictionary<decimal, string[][]> test2 = new ConcurrentDictionary<decimal, string[][]>();
Вы можете использовать такой код
test1[identifier1] = new string[123];
test1[identifier1][12] = "hello";
test2[identifier2] = new string[10][];
test2[identifier2][0] = new string[20];
test2[identifier2][0][1] = "world";
ввести ваши данные. Вот пример доступа к введенным вами данным:
Console.WriteLine(test1[identifier1][12] + " " + test2[identifier2][0][1]);
Я должен сказать, однако, что такой код имеет тенденцию быть довольно запутанным и трудным для отладки, особенно для случая test2. Вы уверены, что хотите использовать неровные массивы?