C Linq SelectMany,返回整个对象
我有一门课是这样的:C Linq SelectMany,返回整个对象,linq,silverlight-5.0,generic-collections,Linq,Silverlight 5.0,Generic Collections,我有一门课是这样的: public class FileCollection:ObservableCollection<IUserFile>. List<IUserFile> selectedFiles = new List<IUserFile>; foreach(string s in names) { var matchingFiles = this.SelectMany(userFile => userFile.Name.Eq
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);
}
}
在类中,我希望根据名称列表获取集合的子集
我想应该是这样的:
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调用中遇到了问题;编译器错误消息没有那么大帮助。
任何关于如何从集合中提取子集的建议都将不胜感激 使用基于谓词过滤值序列的替代方法,以便:
var matches = this.Where(userFile => userFile.Name.Equals(s));
而不是,它将序列的每个元素投影到IEnumerable,并将生成的序列展平为一个序列。虽然我知道SelectMany可能会选择许多源,但实际上您想要的是在哪里。SelectMany是指当您要为源中的每个项目选择许多其他内容时(例如,从父项列表中),您可以选择many以生成子项列表。感谢您的回复。我刚发现这个。我要找的到底是哪里。