2011-04-04 89 views
0

以下幾行代碼從數據庫中抓取少量行,並將Table.Id值放入整數列表中。我想有一種方法可以將這些代碼壓縮成一行,但我不知道如何。將一個字段放入數組中?

var result db.Table.Where(a=>a.Value>0).ToList(); 
List<int> ids = new List<int>(); 
foreach(var row in result){ 
    ids.Add(row.Id); 
} 

任何幫助將不勝感激,謝謝!

編輯:我的標題說數組,我的例子有一個列表,一個是好的。對不起,如果有任何困惑。

回答

5
var ids = db.Table.Where(a => a.Value > 0).Select(row => row.Id).ToList(); 

應該做的伎倆,除非我的福熄滅

+1

fu?什麼是fu? – sooprise 2011-04-04 17:36:40

+1

kung。和功夫一樣。 – 2011-04-04 17:37:35

+1

謝謝Sensai – sooprise 2011-04-04 17:38:33

0

試試這個:

var result = db.Table.Where(a=>a.Value>0) 
       .Select(a=>a.Id) 
        .ToList(); 
+0

這種風格的代碼有多普遍,每種擴展方法都有自己的代碼並縮進? – sooprise 2011-04-04 17:37:59

+1

我寫了一個類似的風格,只是爲了保持過濾不同,使得它在眼睛的長期運行更容易imo,雖然我會以不同的方式進行區分,但這只是我的風格 – Jimmy 2011-04-04 17:39:25

+0

我不知道它有多普遍..但它使從我的角度來看它更具可讀性...... – Chandu 2011-04-04 17:41:45

0

您也可以使用List.ForEach Method。所以像這樣:

db.Table.Where(a=>a.Value>0).ToList().ForEach(delegate(Table row) { ids.Add(row.Id); }); 
相關問題