我正在使用ICollectionView包含对象列表的 a 。我需要根据某些对象属性从中获取特定对象,有没有办法做到这一点?
例如,对象是 aUser并且我需要提供
name来获取这个对象。我该怎么做?
private readonly ICollectionView usersCollectionView;
public MappingViewModelView()
{
_UsersList = new ObservableCollection<User>
{
new User {Name = "Jhon"},
};
usersCollectionView = CollectionViewSource.GetDefaultView(_UsersList);
UsersCollectionView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
}
Run Code Online (Sandbox Code Playgroud)
SourceCollection从ICollectionView实例中获取并将其转换为您的特定类型(在您的情况下为用户),您可以使用 LINQ 扩展方法来获得结果。
User user = usersCollectionView.SourceCollection.Cast<User>()
.FirstOrDefault(p => p.Name == "Jhon");
Run Code Online (Sandbox Code Playgroud)
或者
使用OfType<T>扩展方法:
User user = usersCollectionView.SourceCollection.OfType<User>()
.FirstOrDefault(p => p.Name == "Jhon");
Run Code Online (Sandbox Code Playgroud)
您必须添加System.Linq命名空间才能使用 Cast 和 FirstOrDefault 扩展方法。
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |