使用Linq和Lambda表达式从表中选择多个字段

时间:2010-09-15 09:29:16

标签: c# linq-to-sql lambda

我有一个DataContext(db)可以访问我的SQL Express数据库中的表,我想从中提取tblItem表中的多个字段中的三个:

// this does not work - what is the correct way to do it?  
var items = db.tblItems.Select(i => i.id && i.name && i.totalAmount);

目的是将它们吐出到csv文件中(以逗号分隔)。 var是最好的方法吗?

3 个答案:

答案 0 :(得分:11)

您必须使用匿名对象:

var items = db.tblItems.Select(i => 
            new { 
                  ID = i.id, 
                  Name = i.name, 
                  TotalAmount = i.totalAmount
                });

您可以像其他任何集合一样迭代items

foreach(var item in items)
{
  //do stuff
}

答案 1 :(得分:5)

如果“a var”是指匿名类型,则可能是:

var items = db.tblItems.Select(i => new { i.id, i.name, i.totalAmount });

答案 2 :(得分:3)

是的,要么使用像这样的匿名类型

var items = 
db.tblItems.Select(i => 
new
{
 i.id,
 i.name,
 i.totalAmount,
});

或者,如果你有一个班级,请改用它。

 var items = 
    db.tblItems.Select(i => 
    new ItemsClass() //Or whatever
    {
     Id = i.id,
     Name = i.name,
     TotalAmount = i.totalAmount,
    });