C# 按多个值筛选通用列表

C# 按多个值筛选通用列表,c#,asp.net,linq,C#,Asp.net,Linq,有一个文档的通用列表,如何按文档id 1和2进行筛选 我试着跟随林克,但不起作用。我需要筛选列表并将其用作数据源 List<VisitDocs> listD = default(List<VisitDocs>); result = from docs in listDwhere docs.DocID == 1 && docs.DocID == 2docs; rptDocs.DataSource = listD; 你需要: 或 你的文档ID可以是1或2,

有一个文档的通用列表,如何按文档id 1和2进行筛选

我试着跟随林克,但不起作用。我需要筛选列表并将其用作数据源

List<VisitDocs> listD = default(List<VisitDocs>);
result = from docs in listDwhere docs.DocID == 1 && docs.DocID == 2docs;

rptDocs.DataSource = listD;
你需要:

你的文档ID可以是1或2,不可能两者都是。您当前的条件是使用&&这意味着它必须同时为1和2

用于分配数据源调用列表,如:


我想你试着写这样的东西:

var result = (from docs in listD
             where docs.DocID == 1 || docs.DocID == 2
             select docs).ToList();

rptDocs.DataSource = result;
其中listD是您的原始列表。请注意,在您的代码示例中,ListD将为空


如果希望结果同时具有DocID值1和2,只需将&&替换为| |。使用&&意味着任何单个结果都应该同时满足这两个条件,这是不可能的:单个结果的DocID等于1、2或其他任何值。因此,如果要对每个结果都使用1或2,则应使用or逻辑运算符。

docs.DocID==1&&docs.DocID==2永远不能为真:如果值为1,则不是2,反之亦然。您需要使用| |或,而不是&&p>请将&&T更改为| |,然后查看它是否工作

listD.where n=>n.DocID==1 | | docs.DocID==2docs;我非常非常厌倦SO的用户,他们在没有解释原因的情况下对帖子投了否决票,因为我的答案肯定是好的,而且很有帮助。没有评论的否决票每次至少要花费10个代表…我没有否决票,但我认为这是因为你发布的代码仍然在使用&&而不是| |。也许吧。但我的帖子也涵盖了这一点。首先,我修复了问题中导致代码不可编译的拼写错误,并对运算符问题进行了注释。因为它肯定不能像这样工作,我们可以假设OP实际上想要一个| |。我已经编辑了我的帖子来直接修复操作符…我可以在数据源中使用结果吗?@user1263981,在将查询分配给数据源之前,您应该调用ToList。请参阅:我已尝试使用ToList,但结果为零。@user1263981,您确定有ID为1或2的记录吗
result = from docs in listD where docs.DocID == 1 || docs.DocID == 2 select docs;
rptDocs.DataSource = result.ToList();
var result = (from docs in listD
             where docs.DocID == 1 || docs.DocID == 2
             select docs).ToList();

rptDocs.DataSource = result;