2013-04-29 101 views
0

是否有任何可能從.Where聲明只獲得一列?例如 - ID實體 - 如何獲得只有一列

List<testB> test = db.testB.Where(x => x.UserID == userId).ToList(); 

在這裏,我得到所有的邀請testB

而我只想返回List<int>testB.ID而不是List<testB>。我怎樣才能做到這一點?

+0

在@ StevenVondruska的回答中,使用Linq的'Select'方法將_project_(請參閱Select方法的工具提示幫助)選擇到'int'列表中。 – 2013-04-29 17:41:45

回答

10
db.testB.Where(x => x.UserID == userId).Select(x => x.ID).ToList(); 

應該返回一個List<int>

+0

它將返回'x.ID'類型的'List'。 – 2013-04-29 17:44:52

+0

@retailcoder它暗示在問題ID是int類型。 – 2013-04-29 20:21:21

0

嘗試使用。選擇這樣的

var test = db.testB.Where(x => x.UserID == userId) 
    .Select(a => new { 
      column = a.column 
    }).ToList(); 

這將創建一個匿名類型的類只能在屬性。試試看。

+1

這將無法正常工作,因爲您已在Select位置之前完成選擇 - UserId列在選擇部件後不存在。通常你會在'Select'之前做'Where',就像在Steven的回答中 – Richard 2013-04-29 17:42:08

+0

你是對的。我剛剛更新了答案。它現在應該工作。 – RaulMonteroC 2013-04-29 17:49:51

+0

這不是問題的有效答案。它不會返回一個'List ' – arserbin3 2014-05-09 21:03:39

相關問題