Best Answer
А какви очакваш да са стойностите? Дай примерен изход на масива, който очакваш да излезе
[0,0,0] = 15,
[0,1,0] = 25,
и т.н.?
Дай с малко числа, за да стане ясно?
А какви очакваш да са стойностите? Дай примерен изход на масива, който очакваш да излезе
[0,0,0] = 15,
[0,1,0] = 25,
и т.н.?
Дай с малко числа, за да стане ясно?
Всички елементи са стрингове. Ето част от текстовия файл:
USA
Tier 1
F2A-1 Buffalo.png
F2A-3 Buffalo.png
OS2U-1 Kingfisher.png
OS2U-3 Kingfisher.png
P-26A-33 Peashooter.png
P-26A-34 M2 Peashooter.png
P-26A-34 Peashooter.png
P-26B-35 Peashooter.png
P-36A Hawk.png
P-36C Hawk.png
P-36G Hawk.png
PBY-5 Catalina.png
PBY-5a Catalina.png
Rasmussen's P-36A Hawk.png
SBD-3 Dauntless.png
Tier 2
A-20G-25 Havoc.png
A-36 Apache.png
...
Всеки път като срещне име на държава, както в случая USA, x трябва да се увеличи с 1, а всеки път като срещне
Tier N, y се увеличава с 1. Всеки друг ред, който е различен от име на държава и Tier N, трябва да се запише в третото измерение. В този случай между Tier 1 и Tier 2 имаме 15 реда, но между 2 и 3 може да са 25/5/20 или каквото и да било друго число.
Разбрах те:
n["USA", "Tier1"] = ["f2a-1", "f2a-3", ...]
n["USA", Tier"2"] = ["...", "...", ...]
n["Canada", "Tier1"] = [ ... ]
Нали така? Където Канада и УСА са х, а Тайърите у (числа)
Защо не направиш двумерен масив от листове от стрингове? При положение, че не знаеш колко неща ще имаш в Tier-ите, масив е най-неподходящата структура. Единият вариант е първо да обиклоиш файла за да видиш колко ще ти е голямо третото измерение всеки път, което е крайно неефективно. Другия варинат е да ползваш структура от данни, която позволява нефиксиран брой елементи.
Нещо такова:
Въпреки, че ми се струва, че твоята структура най-добре отговаря на речник
dicitonary["USA"] =>
["Tier1"] => [....],
["Tier2"] => [ ... ],
което е Dictionary<string, Dictionary<string, List<string>>>
В момента кода представлява това и работи без грешка, но следобяд, като имам малко време ще го преработя с List<>, защото наистина е много по-ефективно, и нямам идея защо не се сетих сам. Мерси много. :)