2013-07-06 66 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;