C# List列表内数据移动顺序(上下调整)
时间:2011-04-16 来源:iupme
有时候需要调整数据列表内的顺序.
现写成扩展方法.方便调用.
View Codepublic static partial class KK扩展方法
{
/// <summary>
/// KK上移s the specified data list.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dataList">The 数据列表 list.</param>
/// <param name="id">The 需要移动的id.</param>
/// <param name="位数">The 移动的 位数. 默认为1</param>
/// <returns></returns>
public static bool kk上移<T>(this IList<T> dataList, int id, int 位数 = 1)
{
return dataList.kk移动(id, id - 位数);
}
public static bool kk下移<T>(this IList<T> dataList, int id, int 位数 = 1)
{
return dataList.kk移动(id, id + 位数);
}
public static bool kk顶部<T>(this IList<T> dataList, int id)
{
return dataList.kk移动(id, 0);
}
public static bool kk底部<T>(this IList<T> dataList, int id)
{
return dataList.kk移动(id, dataList.Count - 1);
}
public static bool kk移动<T>(this IList<T> dataList, int 原ID, int 新ID)
{
if (原ID >= dataList.Count || 新ID >= dataList.Count || 原ID < 0 || 新ID < 0 || 原ID == 新ID) { return false; }
try
{
var sel = dataList[原ID];
dataList.RemoveAt(原ID);
dataList.Insert(新ID, sel);
return true;
}
catch (Exception)
{
return false; ;
}
}
public static bool kk交换<T>(this IList<T> list, int 原ID, int 新ID)
{
if (原ID >= list.Count || 新ID >= list.Count || 原ID < 0 || 新ID < 0 || 原ID == 新ID) { return false; }
try
{
var sel = list[原ID];
list[原ID] = list[新ID];
list[新ID] = sel;
return true;
}
catch (Exception)
{
return false; ;
}
}
}
相关阅读 更多 +