2013-07-06 65 views
0

嗨只是需要有关建议列出/ 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 

我重新安排的要求基于当前记录的员工的输出。

,比如我有信息USERID 4日是在我的网站LOGGED那么这个功能 应该返回我

USERID USERNAME 
    4  FourthUser 
    1  FirstUser 
    2  SECONDUSER 
    3  THIRDUSER 
    5  FIFTHUSER 

只给我之所以要这么做 - 我有一个下拉菜单在不同的地方我的网站,我要确保,如果这个函数被调用来加载我的下拉列表。默认情况下,应该选择当前登录的用户。

我很感激,如果有人能提供有价值的投入..

+2

你尝试过什么?问题是普遍预期不会只问“你怎么做到这一点”,而是以帮助您,您有让你自己的代码工作的具体问题。 –

回答

1

Just combine two lists using 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

谢谢贾斯汀!我正忙于检查其他选项,但这救了我。 –

0

你也可以试试这招: 插入你的登录用户的0位置列表,然后调用不同。

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;