如何通过parentId从列表中删除所有项目

时间:2016-04-14 09:41:54

标签: c# list

我有一个简单的CRUD应用程序,包含类别和手机, 对于来自 List 的单删除手机,我使用:

var arrayPhones = new List<Phone>();
        using (StreamReader file = new StreamReader(@"d:/phones.json"))
        {
            var strPhones = file.ReadToEnd();
            arrayPhones = JsonConvert.DeserializeObject<List<Phone>>(strPhones);


            var currentPhone = arrayPhones.Where(p => p.Id == phone.Id).SingleOrDefault();
            arrayPhones.Remove(currentPhone);
        }

现在我要删除此类别的类别和所有手机,我的手机型号:

 public class Phone
{
    [JsonProperty("id")]
    public int Id { get; set; }

    [JsonProperty("parentId")]
    public int ParentId { get; set; }

    [JsonProperty("caption")]
    public string Caption { get; set; }

    [JsonProperty("imgUrl")]
    public string ImgUrl { get; set; }

如何删除所有类别的手机? 谢谢你的回答!

3 个答案:

答案 0 :(得分:2)

似乎缺少一些信息。你的Category类是如何定义的?您的Phone类如何引用类别?

假设Phone有一个propId,它就像是:

var phonesOfThisCategory = arrayPhones.Where(p => p.CategoryId == category.Id);

foreach(var aPhone in phonesOfThisCategory)
{
    arrayPhones.Remove(aPhone);
}

答案 1 :(得分:1)

对于多个记录,选择不要删除的记录并分配到列表

arrayPhones = arrayPhones.Where(p => p.Id != phone.Id).ToList();

答案 2 :(得分:0)

尝试使用此RemoveAll方法