那里的两段代码之间有什么区别?
这比使用的更好吗?
DataClassesDataContext db = new DataClassesDataContext();
var QSelect1 = from _ADS in db.tblADs
where _ADS.fldAdsId == Convert.ToInt32(e.CommandArgument)
select _ADS;
var QSelect2 = db.tblADs.Where(x => x.fldAdsId == Convert.ToInt32(e.CommandArgument));
答案 0 :(得分:2)
第一个是查询表达式,第二个是Lambda表达式。它们是等价的。它们最终是一样的。
有关详细信息,请参阅:Query Syntax and Method Syntax in LINQ (C#)
要记住的一件事是,有许多运算符在查询语法中没有关键字,您应该使用流畅的语法。这意味着任何外部操作员 以下内容:
Where, Select, SelectMany
OrderBy, ThenBy, OrderByDescending, ThenByDescending
GroupBy, Join, GroupJoin
您也可以使用它们的混合版本:
int matches = (from n in names where n.Contains ("a") select n).Count();