C# 获取IList<&燃气轮机;再次过滤细节

C# 获取IList<&燃气轮机;再次过滤细节,c#,asp.net,entity-framework,linq-to-sql,C#,Asp.net,Entity Framework,Linq To Sql,您好,我从下面的查询中获得产品中的数据,但我再次希望产品得到过滤,并将该数据存储在另一个Ilist名称product1中。我已经写了下面的代码,但它无法工作,有人能帮我吗 IList<Product> products = ProductDataSource.FindProducts();//store data in list of products IList<Product> products1 = products.SingleOrDefault(s =>

您好,我从下面的查询中获得产品中的数据,但我再次希望产品得到过滤,并将该数据存储在另一个Ilist名称product1中。我已经写了下面的代码,但它无法工作,有人能帮我吗

IList<Product> products = ProductDataSource.FindProducts();//store data in list of products

IList<Product> products1 = products.SingleOrDefault(s => s.Visibility == 2)); 
IList products=ProductDataSource.FindProducts()//在产品列表中存储数据
IList products1=products.SingleOrDefault(s=>s.Visibility==2);
如果对Ilist产品进行过滤,并且过滤后的细节只保留在其自身,这就足够了。
因此,无需再将一个Ilist声明为product1

Linq方法
SingleOrDefault
不生成列表,它生成单个项(或null)

因此,它应该是:

Product product = products.SingleOrDefault(s => s.Visibility == 2);
或者,如果您确实需要列表:

IList<Product> products1 = products.Where(s => s.Visibility == 2).ToList(); 
IList products1=products.Where(s=>s.Visibility==2.ToList();

在您的代码示例中(对我们来说)有太多的未知数。请看。而且,“它不能工作”从来都不是一个好的描述。@PeterB更新了问题,现在看起来不错了?更好,现在,我可以集中精力并制定一个答案。因为我在这方面是新手,我不知道实际上我需要列Visibility=2的详细信息列表,如果我不想获得产品中的详细信息1,我想通过数据在产品中自动过滤,那么这是可能的吗?如果你的意思是更改
产品的值
:这就是变量对于,您可以根据需要经常分配和重新分配它们。因此,执行
products=products.Where(s=>..
),只要新赋值的类型与变量的类型相同(在本例中是)。