【问题标题】:Searching List <dvd> C # not using LINQ搜索列表 <dvd> C# 不使用 LINQ
【发布时间】:2016-05-02 09:38:36
【问题描述】:

我有一个 DVD 出租应用程序。在我的Store(类)中,我需要在Dvd(类)中搜索未租用的DVD,并将Movie类中的电影保存到列表中(getAvailableDVD())。 Movie 具有属性集和 List&lt;Dvd&gt; 和我的 Dvd 我有一个可用性枚举:{Available,Rented,Not Available}

我对这个想法很陌生,但我想搜索每个Availability.Available 的列表并返回其对应的电影(Movie

有人对如何在我的Store 类中处理搜索方法有想法吗?

class Movie
{
    string brand;
    public string BRAND
    {
        get{ return brand;}
    }
    List<Dvd> films = new List<Dvd>();
    public Movie(String brand)
    {
       this.brand = brand;  
    }
}

class DVD
{
     public int BARCODE{get;set}
     public Availability STATUS{ get;set;}
     public DateTime RENTALDATE { get; set; }
     public DateTime RENTALDUE { get; set; }
     public DVD(int barcode, Availability avail, DateTime out, DateTime in){
          this.BARCODE = barcode; this.STATUS = avail; this.RENTALDATE = out; this.RENTALDUE = in;
     }
}

class Store
{
    List<Movie> films = new List<Movie>();
    public void addFilmtoStore(-----all params from dvd & movie classes----);
}

【问题讨论】:

  • 很难理解你的问题。一些代码可以帮助我们理解。
  • 请您提交一些代码并告诉我们它在哪里失败或返回意外结果?
  • 使用 Linq 还是简单地创建一个 for 循环?
  • 这不是 LINQ 查询...这是 foreach 列表查询
  • 可以适合 addfilm 类的其余部分(上图),但该方法会创建 dvd 和电影的实例并将它们添加到电影列表中。下面是我要创建搜索列表方法的地方

标签: c# list search methods enums


【解决方案1】:

一种可读的方法是使用 LINQ 来查询您的列表:

public List<Movie> GetAvailableDVDs()
{
    List<Movie> availableFilms = GetAllDVDs() // presuming you have such a method
        .Where(dvd => dvd.STATUS == Availability.Available)
        .Select(dvd => dvd.Film)   
        .ToList();
    return availableFilms;
}

如果您不能使用 LINQ,则类似:

public List<Movie> GetAvailableDVDs()
{
    List<Movie> availableFilms = new List<Movie>();
    foreach(DVD dvd in GetAllDVDs())
    {
        if(dvd.STATUS == Availability.Available)
        {
            availableFilms.Add(dvd.Film);
        }
    }
    return availableFilms;
}

【讨论】:

  • 我没有使用 LINQ 作为我课程的一部分,只是 foreach 和列表 ..simple
  • @KingBee:然后使用简单的循环并手动初始化列表,看我的代码
  • 电影,不属于电影类的 DVD 类。这是我的问题的一部分。你知道怎么做吗?
  • @KingBee:抱歉,我必须承认我不再确定您需要什么以及在哪里找到它。我的示例是否有助于解决问题?
  • 我几乎也有相同的代码。除了我的每个人都在看 List 电影列表&你提到了那个方法。我现在已经改变了哪个效果很好,只需要将相应的电影(细节)保存到我的列表中。 90% 完成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 2012-11-10
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
相关资源
最近更新 更多