linq - C# Linq SelectMany,返回整个对象

标签 linq silverlight-5.0 generic-collections

我有一个这样的类(class):

public class FileCollection:ObservableCollection<IUserFile>.  

在类中,我想根据名称列表获取集合的子集。

我想它会是这样的:

List<IUserFile> selectedFiles = new List<IUserFile>;
foreach(string s in names)  
{  
    var matchingFiles = this.SelectMany(userFile => userFile.Name.Equals(s));  
    foreach(IUserFile uf in matchingFiles)  
    {  
        selectedFiles.Add(uf);    
    }  
 }  

此时,我在 Select 或 SelectMany 调用方面遇到问题;编译器错误消息没有多大帮助。
任何有关如何从集合中提取子集的建议将不胜感激......

最佳答案

使用 Where相反 - “根据谓词过滤值序列” - 这样:

var matches = this.Where(userFile => userFile.Name.Equals(s)); 

而不是 SelectMany ,它“将序列的每个元素投影到 IEnumerable 并将结果序列展平为一个序列。”

关于linq - C# Linq SelectMany,返回整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365950/

相关文章:

asp.net - Linq 无法识别查询中的解析

mysql - SQL order by < linq to entity framework 中的字符串

c# - 如何在 mvvm 模型中从数据库中保存和检索复选框值?

silverlight-5.0 - 离开浏览器时 Silverlight 应用程序被禁用

c# - Dictionary<Tkey, TValue>, List<T> 和其他集合实现/运行时

c# - 使用 LINQ 加密列数据

c# - LINQ .Any VS .Exists - 有什么区别?

Silverlight 浏览器外应用程序不会使用 MainWindow.Close 方法关闭

ios - Swift:等同泛型数组

java - 将父对象添加到 List<?扩展父级> - Java