C# 选择包含其他列表中所有元素的列表

C# 选择包含其他列表中所有元素的列表,c#,C#,好的,我有两个元素: class Full { public string FullId {get; set;} public List<string> Tapes {get; set;} } 但是这会导致空值。这行吗 命名空间控制台应用程序1 { 班级计划 { 静态void Main(字符串[]参数) { Full Full=新的Full() { FullId=“A”, 磁带=新列表(){“1”、“2”、“4”} }; List optSet=新列表(){ ne

好的,我有两个元素:

class Full
{
    public string FullId {get; set;}
    public List<string> Tapes {get; set;}
}
但是这会导致空值。

这行吗

命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
Full Full=新的Full()
{
FullId=“A”,
磁带=新列表(){“1”、“2”、“4”}
};
List optSet=新列表(){
new OptSet(){SetId=“x”,Tapes2=new List(){“1”、“2”、“3”},
new OptSet(){SetId=“y”,Tapes2=new List(){“1”、“2”、“4”},
new OptSet(){SetId=“z”,Tapes2=new List(){“1”、“2”、“3”、“4”}
};
List results=optSet.Where(x=>full.Tapes.Where(y=>!x.Tapes2.Contains(y)).Count()==0.ToList();
}
}
公务舱已满
{
公共字符串FullId{get;set;}
公共列表磁带{get;set;}
}
公共类OptSet
{
公共字符串SetId{get;set;}
公共列表磁带2{get;set;}
}
}
​

如果它不仅返回磁带列表,还返回完整的对象,那就太棒了。你必须有一个OptSet列表。固定答案。这不起作用。它会无限循环。它不会永远循环。不可能的您可能有大量数据或损坏的列表。代码是有效的。我添加了测试数据来证明它是有效的。
class OptSet
{
    public string SetId {get; set;}
    public list<string> Tapes2 {get; set;}
}
Full currFull = inputFull.Where(f => 
    f.Tapes.Contains(OptSet.Tapes2.ToString())).FirstOrDefault();
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Full full = new Full()
            {
                FullId = "A",
                Tapes = new List<string>() { "1", "2", "4" }
            };



            List<OptSet> optSet = new List<OptSet>() {
                new OptSet() { SetId = "x", Tapes2 = new List<string>() {"1", "2", "3"}},
                new OptSet() { SetId = "y", Tapes2 = new List<string>() {"1", "2", "4"}},
                new OptSet() { SetId = "z", Tapes2 = new List<string>() {"1", "2", "3", "4"}}
            };


            List<OptSet> results = optSet.Where(x => full.Tapes.Where(y => !x.Tapes2.Contains(y)).Count() == 0).ToList();

        }
    }
    public class Full
    {
        public string FullId { get; set; }
        public List<string> Tapes { get; set; }
    }


    public class OptSet
    {
        public string SetId { get; set; }
        public List<string> Tapes2 { get; set; }
    }

}

​