- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
private bool CompareLvlCats(string[] cat,List<string[]> cats, int lvl)
{
if (lvl == 1) return cats.Find(x => x[0] == cat[0] && (x[1] != cat[1] ||x[1]!="")) != null;
if (lvl == 2) return cats.Find(x => x[0] == cat[0] && x[1] == cat[1] && (x[2] != cat[2] || x[2] != "")) != null;
if (lvl == 3) return cats.Find(x => x[0] == cat[0] && x[1] == cat[1] && x[2] == cat[2] && (x[3] != cat[3] || x[3] != "")) != null;
if (lvl == 4) return cats.Find(x => x[0] == cat[0] && x[1] == cat[1] && x[2] == cat[2] && x[3] == cat[3] && (x[4] != cat[4] || x[4] != "")) != null;
if (lvl == 5) return cats.Find(x => x[0] == cat[0] && x[1] == cat[1] && x[2] == cat[2] && x[3] == cat[3] && x[4] == cat[4] && (x[5] != cat[5] || x[5] != "")) != null;
if (lvl == 6) return false;
return false;
}
hack2root 01.12.2014 19:26 # 0
1) null, null
2) null, new List<string[]>(null)
3) null, new List<string[]>(new string[0]{ })
4) null, new List<string[]>(new string[]{ "1" }, 1)
1) new string[] { "1" }, null
2) new string[] { "1" }, new List<string[]>(null)
3) new string[] { "1" }, new List<string[]>(new string[0]{ })
4) new string[] { "1" }, new List<string[]>(new string[]{ "1" }), 1
ну и различные сочетания для массивов от 0 элементов, до 4 (при 5 вылетать не будет)
то говнокод, в общем-то, будет падать, потому что етьс априорная информация:
1)число элементов в массивах, находящихся в списке массивов - не меньше (строго больше) уровня массива (равно +1)
2)не допускаютя null элементы массива, null параметры
У меня разрыв шаблона
hack2root 01.12.2014 19:36 # 0