重新排列列表中的元素
本文关键字:列表 元素 排列 新排列 | 更新日期: 2023-09-27 18:21:09
嗨,关于List/LINQ等的刚需建议
public static List<Employee> Employees()
{
return Adapters.WebServiceAdapter.getInstance.SELECT_EMPLOYEES().ToList();
}
这将返回USERID、USERNAME,按USERID的ASC顺序如下
USERID USERNAME
1 FirstUser
2 SecondUser
3 ThirdUser
4 FourthUser
5 FifthUser
我需要根据当前登录的员工重新安排输出。
例如,我有信息,用户ID 4TH是登录在我的网站,然后这个功能应该把还给我
USERID USERNAME
4 FourthUser
1 FirstUser
2 SECONDUSER
3 THIRDUSER
5 FIFTHUSER
只是为了说明我为什么这么做——我的网站上有一个下拉列表,我想确保如果调用这个函数来加载我的下拉列表。默认情况下,应默认选择当前登录的用户。
如果有人能提供宝贵的意见,我将不胜感激。。
只需使用Union 组合两个列表
链接代码:
var numbers = new List<Int32>{1,2,3,4,5};
var loggedInUsers = numbers.Where(x=>x == 4);
var restOfUsers = numbers.Where(x=>x != 4);
var joinedLists = loggedInUsers.Union(restOfUsers).ToList();
您也可以试试这个技巧:将您的登录用户插入列表的位置0,然后调用distinct。
MyList.Insert(0,MyList.Single(c => c.UserID == IDofLoggedUser));
var lst = MyList.Distinct();
结果:
the original list ordered by ID like you have
MyList = 1,2,3,4,5,6;
then insert for example logged user has ID of 4
MyList = 4,1,2,3,4,5,6;
then call distinct,it will find and maintain the first 4,and remove second 4, so final result:
MyList = 4,1,2,3,5,6;