2

我有这样的课:

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 调用的问题;编译器错误消息没有那么有用。
任何有关如何从集合中提取子集的建议将不胜感激......

4

1 回答 1

3

使用 aWhere代替 - “根据谓词过滤一系列值” - 这样:

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

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

于 2013-03-12T15:57:32.600 回答