2017-02-07 2 views
-1

У меня возникли проблемы, исключая картотеку.Исключить maptype

if (Session.Character.Level <= 30) 
{ 
    if (Session.Character.Level <= monsterToAttack.Monster.Level + 10 && Session.Character.Level >= monsterToAttack.Monster.Level - 10) 
    { 
     Session.Character.Reput += ((Session.Character.Level - monsterToAttack.Monster.Level) + monsterToAttack.Monster.Level)/2; 
     Session.SendPacket(Session.Character.GenerateFd()); 
    } 
} 
else if (Session.Character.Level > 30) 
{ 
    if (Session.Character.Level <= monsterToAttack.Monster.Level + 7 && Session.Character.Level >= monsterToAttack.Monster.Level - 7) 
    { 
     Session.Character.Reput += ((monsterToAttack.Monster.Level - Session.Character.Level) + monsterToAttack.Monster.Level)/3; 
     Session.SendPacket(Session.Character.GenerateFd()); 
    } 
} 

Это мой код, мне нужно тоже исключить некоторые карты как

Session.CurrentMapInstance.Map.MapTypes 
    .Any(s => s.MapTypeId == (short)MapTypeEnum.GoldMapHard) 

Как исключить?

+1

У меня возникли проблемы с пониманием этого вопроса. Что вы подразумеваете под «исключением типа карты» - исключая его из чего? Что ваш первый блок кода имеет отношение к вопросу? Вы спрашиваете, как сделать первый блок кода выполненным только тогда, когда второй блок является ложным? –

ответ

0

Если вы хотите фильтр, то есть чтобы оставить только результаты, соответствующие определенному условию, вы можете использовать метод Where.

Примером может быть

var filteredResults = Session.CurrentMapInstance.Map.MapTypes.Where(s => s.MapTypeId == (short)MapTypeEnum.GoldMapHard).ToList() 

Позже, возможно, потребуется удалить эти совпадающие элементы из исходной коллекции. Для этого вам нужно найти подходящий Remove метод в MapTypes коллекции и сделать что-то вроде

foreach (var item in filteredResults) 
{ 
    Session.CurrentMapInstance.Map.MapTypes.Remove(item) // <-- probably requires suitable Remove() method invoked instead 
} 
Смежные вопросы