【发布时间】:2018-10-19 09:33:43
【问题描述】:
我有对象模型文件和用户:
public class File
{
public int Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
public uint Size { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public IEnumerable<File> Files { get; set; }
}
我已经创建了模型的对象列表:
var users = new List<User> { new User
{
Id = 1,
Name = "Alex",
Files = new List<File>
{
new File
{
Id = 1,
Name = "123.txt",
Size = 20000
}
new File
{
Id = 3,
Name = "111.txt",
Size = 10
}
}
},
new User
{
Id = 2,
Name = "Andry",
Files = new List<File>
{
new File
{
Id = 1,
Name = "file.txt",
Size = 3
},
new File
{
Id = 2,
Name = "file.mp3",
Size = 4342
}
}
},
new User
{
Id = 3,
Name = "Jon",
Files = new List<File>
{
new File
{
Id = 1,
Name = "site.txt",
Size = 3324
}
}
},
};
具有名称的字段 - 对象用户列表的文件包含对象文件的列表。
如何删除Size <= 10用户的文件?
这种方式行不通:
users.SelectMany(u => u.Files).ToList().RemoveAll(f => f.Size <= 10);
【问题讨论】:
-
我不清楚您是想修改
users列表还是想要一个包含除部分文件之外的所有文件的新列表。 -
如何获取文件大小 > 10 的用户列表?我想得到用户列表的结果。
-
不要在 cmets 中回答我,而是编辑您的问题并改进它。
-
users = users.Select(x => new User() { Id = x.Id, Name = x.Name, Files = x.Files.Where(y => y.Size > 10 ) }).ToList();