首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICollectionView获取特定对象

ICollectionView获取特定对象
EN

Stack Overflow用户
提问于 2014-02-23 14:08:39
回答 2查看 1.4K关注 0票数 1

我使用的是一个ICollectionView,它包含一个对象列表。我需要根据某个对象属性从它获得一个特定的对象,有方法这样做吗?

例如,对象是一个User,我需要提供name来获取这个对象。我该怎么做?

代码语言:javascript
复制
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));
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-23 14:17:03

SourceCollection实例中获取ICollectionView并将其转换为特定类型(在您的示例中为用户),您可以使用来获得结果。

代码语言:javascript
复制
User user = usersCollectionView.SourceCollection.Cast<User>()
                 .FirstOrDefault(p => p.Name == "Jhon");

使用OfType<T>扩展方法:

代码语言:javascript
复制
User user = usersCollectionView.SourceCollection.OfType<User>()
                 .FirstOrDefault(p => p.Name == "Jhon");

必须添加System.Linq命名空间才能使用Cast和FirstOrDefault扩展方法。

票数 6
EN

Stack Overflow用户

发布于 2014-02-23 14:18:24

使用ICollectionView的ICollectionView属性获取ObservableCollection

代码语言:javascript
复制
User john = ((ObservableCollection<User>)usersCollectionView.SourceCollection).Where( x=> x.Name == "Jhon").FirstOrDefault();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21969259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档