c#如何从列表中获取特定对象

本文关键字:获取 对象 列表 | 更新日期: 2023-09-27 18:11:33

我做了一个根据年龄划分的电影列表。如果你输入你的年龄为18+,你可以看到整个列表。如果你的年龄更小,你会看到一个缩小的列表,这取决于哪些是适合你年龄的。

我制作了一个电影名称列表,但不知道如何在播放时从列表中取出特定的电影。

下面是我的代码:
Console.Write("Hi, if you wish to see a movie please enter your age: ");
string AgeAsAString = Console.ReadLine();
int Age = (int)Convert.ToInt32(AgeAsAString);
List<String> ilist = new List<String>();
ilist.Add("Made in Daghenham");
ilist.Add("Buried");
ilist.Add("Despicable Me");
ilist.Add("The Other Guys");
ilist.Add("Takers");
string combindedString = string.Join(",", ilist);
{ if (Age >= 18)
        Console.Write(combindedString);
    else
        if (Age < 18)
        Console.Write()

        Console.ReadKey();

我似乎找不到一个简单的答案,我只是从整个编码世界开始。谢谢你的帮助!

c#如何从列表中获取特定对象

public class Movie
{
   public int MinAge {get;set;}
   public string Name{get;set;}
}
var Movies = new List<Movie>{new Movie{Name = "blahblah", MinAge = 18}};
//create the list of movies with the age information
var filtered = (from m in Movies where m.MinAge >= 18 select m).ToList();

也许你正在寻找一个类来保存你需要的电影信息

class Movie
{
    public string Name { get; set; }
    public int AgeRestriction { get; set; }
}

然后根据这个类填充一个列表并按照你想要的方式返回结果

        Console.Write("Hi, if you wish to see a movie please enter your age: ");
        string AgeAsAString = Console.ReadLine();
        int Age = (int) Convert.ToInt32(AgeAsAString);
        List<Movie> ilist = new List<Movie>();
        ilist.Add(new Movie()
        {
            Name = "Buried",
            AgeRestriction = 18
        });
        ilist.Add(new Movie()
        {
            Name = "Despicable Me",
            AgeRestriction = 10
        });
        if (Age >= 18)
            return string.Join(",", ilist.Select(x => x.Name));
        else
            return string.Join(",", ilist.Where(x => x.AgeRestriction <= Age));
        Console.ReadKey();

我假设您需要的结果是一个连体字符串而不是一个List。要过滤出基于年龄的列表,只需使用。

ilist.Where(x => x.AgeRestriction <= Age).ToList()