如何用方法语法编写查询
本文关键字:查询 语法 何用 方法 | 更新日期: 2023-09-27 17:53:14
如果类Printer
的ObservableCollection
称为Printers
并且每个CCD_ 4包含属性CCD_ 5(bool(和CCD_
如何将以下LINQ查询从查询语法转换为方法语法?
string[] printerListing =
(from p in Printers
where p.IsSelected
select p.Index.ToString()).ToArray();
我提出了以下内容,但它只返回查询中的第一个Printer
(为了可读性,拆分为多行(:
var printers2 =
Printers.Where(p => p.IsSelected)
.FirstOrDefault()
.Index.ToString().ToArray();
使用.Select((,其功能类似于查询语法中的select
关键字。
var printers2 = Printers
.Where(p => p.IsSelected)
.Select(x => x.Index.ToString())
.ToArray();
string[] printerListing =
(from p in Printers
where p.IsSelected
select p.Index.ToString()).ToArray();
您可以简单地从查询结束到开始一步一步地完成此操作:
ToArray();
停留:....ToArray();
select
:....Select(p => p.Index.ToString()).ToArray();
where
:....Where(p => p.IsSelected).Select(p => p.Index.ToString()).ToArray();
from
(来源(:Printers.Where(p => p.IsSelected).Select(p => p.Index.ToString()).ToArray();
最后:
string[] printerListing =
Printers
.Where(p => p.IsSelected)
.Select(p => p.Index.ToString())
.ToArray();
事实上,它也以相反的方式工作,但有时相反的顺序更容易遵循。
您使用了FirstOrDefault()
,因此它将返回第一个元素,其中isSelected=true。使用
var printers2 = Printers.Where(p => p.IsSelected)
.Select(x => x.Index.ToString).ToArray();