2011-04-04 95 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); }); 
相关问题