我需要在IEnumerable <>中移动一个项目,即将一个项目移到另一个上面.最简单的方法是什么?
这里有一个类似的问题,但我没有通用列表只有一个IEnumerable <>:Generic List - 在列表中移动一个项目
正如@Brian评论的那样,问题是什么move an item in an IEnumerable<> up意思还不清楚.
如果您想为单个项目重新排序IEnumerable,那么下面的代码应该是您正在寻找的.
public static IEnumerable<T> MoveUp<T>(this IEnumerable<T> enumerable, int itemIndex)
{
int i = 0;
IEnumerator<T> enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
i++;
if (itemIndex.Equals(i))
{
T previous = enumerator.Current;
if (enumerator.MoveNext())
{
yield return enumerator.Current;
}
yield return previous;
break;
}
yield return enumerator.Current;
}
while (enumerator.MoveNext())
{
yield return enumerator.Current;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6446 次 |
| 最近记录: |