提交修改
This commit is contained in:
@@ -1,144 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FairyGUI.Utils
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class XMLList
|
||||
{
|
||||
public List<XML> rawList;
|
||||
|
||||
public XMLList()
|
||||
{
|
||||
rawList = new List<XML>();
|
||||
}
|
||||
|
||||
public XMLList(List<XML> list)
|
||||
{
|
||||
rawList = list;
|
||||
}
|
||||
|
||||
public void Add(XML xml)
|
||||
{
|
||||
rawList.Add(xml);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
rawList.Clear();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { return rawList.Count; }
|
||||
}
|
||||
|
||||
public XML this[int index]
|
||||
{
|
||||
get { return rawList[index]; }
|
||||
}
|
||||
|
||||
public Enumerator GetEnumerator()
|
||||
{
|
||||
return new Enumerator(rawList, null);
|
||||
}
|
||||
|
||||
public Enumerator GetEnumerator(string selector)
|
||||
{
|
||||
return new Enumerator(rawList, selector);
|
||||
}
|
||||
|
||||
static List<XML> _tmpList = new List<XML>();
|
||||
public XMLList Filter(string selector)
|
||||
{
|
||||
bool allFit = true;
|
||||
_tmpList.Clear();
|
||||
int cnt = rawList.Count;
|
||||
for (int i = 0; i < cnt; i++)
|
||||
{
|
||||
XML xml = rawList[i];
|
||||
if (xml.name == selector)
|
||||
_tmpList.Add(xml);
|
||||
else
|
||||
allFit = false;
|
||||
}
|
||||
|
||||
if (allFit)
|
||||
return this;
|
||||
else
|
||||
{
|
||||
XMLList ret = new XMLList(_tmpList);
|
||||
_tmpList = new List<XML>();
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
public XML Find(string selector)
|
||||
{
|
||||
int cnt = rawList.Count;
|
||||
for (int i = 0; i < cnt; i++)
|
||||
{
|
||||
XML xml = rawList[i];
|
||||
if (xml.name == selector)
|
||||
return xml;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void RemoveAll(string selector)
|
||||
{
|
||||
rawList.RemoveAll(xml => xml.name == selector);
|
||||
}
|
||||
|
||||
public struct Enumerator
|
||||
{
|
||||
List<XML> _source;
|
||||
string _selector;
|
||||
int _index;
|
||||
int _total;
|
||||
XML _current;
|
||||
|
||||
public Enumerator(List<XML> source, string selector)
|
||||
{
|
||||
_source = source;
|
||||
_selector = selector;
|
||||
_index = -1;
|
||||
if (_source != null)
|
||||
_total = _source.Count;
|
||||
else
|
||||
_total = 0;
|
||||
_current = null;
|
||||
}
|
||||
|
||||
public XML Current
|
||||
{
|
||||
get { return _current; }
|
||||
}
|
||||
|
||||
public bool MoveNext()
|
||||
{
|
||||
while (++_index < _total)
|
||||
{
|
||||
_current = _source[_index];
|
||||
if (_selector == null || _current.name == _selector)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void Erase()
|
||||
{
|
||||
_source.RemoveAt(_index);
|
||||
_total--;
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
_index = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user