2010-08-20 98 views
0

我想一個datarow[]轉換成List<int>將數據行[]轉換爲列表<int>的最佳方式是什麼?

List<int> UserIds; 

    public void GetGravatars() 
    { 
     var cmd = access.GetSqlCommandStoredProcedure("uspMembershipGetUserGravatarList"); 
     var table = access.ExecuteDataTable(cmd, DAL.Logic.Common.ConnectionStrings.User); 

     int[] rows = new int[table.Rows.Count]; 
     table.Rows.CopyTo(rows, 0); 
     UserIds = rows.ToList<int>(); 

    } 

    public bool UserHasGravatar(int userId) 
    { 
     UserIds.Find(
      delegate(int i) 
      { 
       return i == userId; 
      } 
     ); 
     return false; 
    } 

什麼是這樣做的最佳方式?

編輯:我的代碼需要遍歷用戶列表,大約40000,並更新他們的圖像,如果他們沒有一個,所以我認爲這將是最快的,加載所有用戶圖像到列表,然後檢查數據庫中的所有用戶標識,如果用戶標識不存在,則更新圖像,否則繼續。

+0

你能提供更多關於你想達到的信息嗎? – ChrisF 2010-08-20 11:08:27

+0

你想要一個整數列表或者一系列提示嗎?問題標題和示例代碼似乎不同意你想要什麼。 – 2010-08-20 11:12:34

回答

8
rows.Select(r=>/*However you get a single int from a single row*/).ToList(); 

更新:

我假設你正在使用的.NET Framework 3.5?但我可能是錯的...

+0

他需要一個int [] - 數組。所以它的ToArray();-) – 2010-08-20 11:13:44

+0

我錯了,還是應該用ToArray()替換ToList()? – davehauser 2010-08-20 11:13:55

+0

哦,他的UserIds類型顯示列表,看起來像規範是矛盾':) 是的,你可以簡單地使用其他擴展方法,ToArray() – flq 2010-08-20 11:14:43

相關問題