wpf ObservableCollection如何通过类里的某个属性匹配找出对应的 item
时间: 2023-07-16 16:17:04 浏览: 55
你可以使用 LINQ 查询语句来实现这个功能。假设你有一个 `ObservableCollection` 对象,其中包含许多 `Person` 对象,每个 `Person` 对象都有一个 `Id` 属性,你想要根据 `Id` 属性查找特定的 `Person` 对象。 你可以使用以下代码来实现:
```csharp
int targetId = 123; // 目标 Id
Person targetPerson = myObservableCollection.FirstOrDefault(p => p.Id == targetId);
```
在这个例子中,`FirstOrDefault` 方法将返回符合指定条件的第一个 `Person` 对象,如果没有找到符合条件的对象,则返回 `null`。在 lambda 表达式中,我们使用 `p => p.Id == targetId` 来指定条件,其中 `p` 表示集合中的每个 `Person` 对象,`p.Id` 表示当前 `Person` 对象的 `Id` 属性,`targetId` 是我们要查找的目标 `Id`。
如果你希望返回所有符合条件的 `Person` 对象,而不仅仅是第一个,你可以使用 `Where` 方法来代替 `FirstOrDefault` 方法。例如:
```csharp
IEnumerable<Person> matchingPeople = myObservableCollection.Where(p => p.Id == targetId);
```
在这个例子中,`Where` 方法将返回一个包含所有符合条件的 `Person` 对象的序列。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)