Цитата:
Сообщение от PSZ
Предложение новой фичи: поиск по диапазону номеров спеллов. Например, вводишь в "ID or Name" 50000-51000 - выдает все спеллы с номерами от 50000 до 51000.
|
Вот он
patch. Пытался сделать поиск по диапазону вида: "123-321" по spell.ID и spell.SpellIconID.
Если понравится - могу развить эту мысль, чтобы можно было задавать диапазоны вида: "123-321, 25, 64, 5550-6891".
Сразу скажу, как реализовывал бы такое. Добавил бы некий класс xCondition, сценарий использования которого выглядел бы приблизительно как:
Код:
private void AdvancedSearch()
{
string name = _tbSearchId.Text;
xCondition id = new xCondition(name);
xCondition ic = new xCondition(_tbSearchIcon.Text);
uint at = _tbSearchAttributes.Text.ToUInt32();
_spellList = (from spell in DBC.Spell.Values
where (
id.Matches(spell.ID) && ic.Matches(spell.SpellIconID)
&& (at == 0 || (spell.Attributes & at) != 0
|| (spell.AttributesEx & at) != 0
|| (spell.AttributesEx2 & at) != 0
|| (spell.AttributesEx3 & at) != 0
|| (spell.AttributesEx4 & at) != 0
|| (spell.AttributesEx5 & at) != 0
|| (spell.AttributesEx6 & at) != 0
|| (spell.AttributesExG & at) != 0))
&& ((id.IsSet || ic.IsSet && at != 0) || spell.SpellName.ContainsText(name))
select spell).ToList();
_lvSpellList.VirtualListSize = _spellList.Count();
if (_lvSpellList.SelectedIndices.Count > 0)
_lvSpellList.Items[_lvSpellList.SelectedIndices[0]].Selected = false;
}