上記はIEnumerable
クラスの実装の例で、1,2,4、 3:
public class MyEnumerable<T> : IEnumerable<T>
{
private List<T> _list;
public MyEnumerable()
{
_list = new List<T>();
}
public void Add(T value)
{
_list.Add(value);
}
public bool Remove(T value)
{
return _list.Remove(value);
}
public bool Exists(Predicate<T> value)
{
return _list.Exists(value);
}
public bool Contains(T value)
{
return _list.Contains(value);
}
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < _list.Count; i++)
{
if (i == 2)
{
i++;
yield return _list[i];
yield return _list[i-1];
}
else
{
yield return _list[i];
}
}
}
IEnumerator IEnumerable.GetEnumerator()
{
for (int i = 0; i < _list.Count; i++)
{
if (i == 3)
{
yield return _list[i + 1];
yield return _list[i];
i += 2;
}
else
{
yield return _list[i];
i++;
}
}
}
}
しかし、あなたのリストには、以上の4つの項目になります場合は、あなたのニーズに応じてでGetEnumerator()
を変更する必要があります。
これは、 "First"、 "Second"、 "Third"、 "Fourth"の順番で表示されるリストの中に "First"、 "Second"、 "Third" 。
static void Main(string[] args)
{
MyEnumerable<string> myEnumerable = new MyEnumerable<string>()
{
"First","Second","Fourth","Third"
};
foreach (var tmp in myEnumerable)
{
Console.WriteLine(tmp);
}
}
ソースデータをソートし、リピータにバインドします。インデックス上のバインドは、それとは関係ありません。 – VDWWD
あなたはIEnumerableクラスを実装し、列挙子を書く必要があると思います。 –
@VDWWDソートは順序付けられた方法で行うことができます。私の場合、私はインデックス値が1,2,3,4の代わりに1,2,4,3と表示される必要があります。 –