使用C#编译器查询理解功能,您可以编写如下代码:
var names = new string[] { "Dog", "Cat", "Giraffe", "Monkey", "Tortoise" };
var result =
from animalName in names
let nameLength = animalName.Length
where nameLength > 3
orderby nameLength
select animalName;
Run Code Online (Sandbox Code Playgroud)
在上面的查询表达式中,let
关键字允许将值传递给where和orderby操作,而无需重复调用animalName.Length
.
什么是LINQ扩展方法调用的等效集合,它实现了"let"关键字在这里的作用?
实体框架.Select()
和.Where()
实体框架之间有什么区别?例如
return ContextSet().Select(x=> x.FirstName == "John")
Run Code Online (Sandbox Code Playgroud)
VS
ContextSet().Where(x=> x.FirstName == "John")
Run Code Online (Sandbox Code Playgroud)
我何时应该使用.Select
vs .Where
?
可能重复:
Linq:Select和Where之间有什么区别
有什么区别
var a = Doc.Document.Where(n => n.Id == id).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
和
var b = Doc.Document.Select(n => n.Id == id).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
为什么变量b是布尔值?
抱歉我的无知,我是LINQ的新手.
我有一个名为 Items 的表。项目有一个名为“locationId”的属性给定位置 ID 列表,我如何选择所有项目?
列表示例
List<long> locationIds = new List<long> { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
本质上是下面的查询,但一次用于多个位置:
var sleectedItems= db.Items.Select(i => i.LocationId == 2);
Run Code Online (Sandbox Code Playgroud) 我有一个方法:
public List<AxeResult> LoadAxes(string kilometriczone, string axe)
{
IEnumerable<AxeResult> allAxes = PullAxes();
var findAxes = allAxes.Select(a => a.KilometricZone.StartsWith(kilometriczone) || a.KilometricZone.StartsWith(axe));
return findAxes.Cast<AxeResult>().ToList();
}
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
IEnumerable<bool>
不包含定义ToList
和最佳扩展方法overloadEnumerable.ToList<AxeResult>
(IEnumerable<AxeResult>
)需要一个接收器类型IEnumerable<AxeResult>
我想在搜索操作后返回一个AxeResult列表.