C# 中的 Linq 查询
本文关键字:查询 Linq 中的 | 更新日期: 2023-09-27 17:57:00
我有一些 xml
<?xml version="1.0" encoding="utf-8" ?>
<carLot>
<vehicle>
<vehicleType>Car</vehicleType>
<color>Red</color>
<transmissionType>Automatic</transmissionType>
</vehicle>
<vehicle>
<vehicleType>Truck</vehicleType>
<color>Black</color>
<transmissionType>Automatic</transmissionType>
</vehicle>
<vehicle>
<vehicleType>Car</vehicleType>
<color>Blue</color>
<transmissionType>Manual</transmissionType>
</vehicle>
</carLot>
我正在尝试抓取 Car 类型的车辆节点。我目前拥有的返回每个车辆节点:
XElement test = XElement.Load(fileName);
var testThing = from thing in test.Descendants("vehicle")
select thing;
在不转换为 Lambda 表达式的情况下,您可以执行以下操作:
XElement test = XElement.Load(new StringReader(xml));
var testThing = from thing in test.Descendants("vehicle")
where thing.Descendants("vehicleType").FirstOrDefault().Value.ToString() == "Car"
select thing;
根据 Tim 对问题的评论(使用 Lambda 表达式):
var testThing = test.Descendants("vehicle")
.Where(c=>(string)c.Element("vehcileType")=="Car")
.Select(c=>c);