为LINQ查询公开受保护的集合

本文关键字:受保护 集合 LINQ 查询 | 更新日期: 2023-09-27 18:18:47

我有一个类,它包含一个泛型字典:

protected Dictionary<K,T> Data { get; set;}

我希望允许这个类的客户端执行LINQ查询而不必返回Dictionary。我看过AsQueryable(),但这似乎不符合我的愿望。

我想写的代码的一个例子是:
typeRepo.Query().Where( x => x.name == "wire")

为LINQ查询公开受保护的集合

似乎字典通过键(K)保存了一个模型(T)。您需要的代码是:

public IQueryable<T> Query
{
    get { return Data.Values.AsQueryable(); }
}

就像这样添加一个公共属性:

public IEnumerable<KeyValuePair<K,T>> Query
{
    get { return Data.AsEnumerable(); }
}