按多个值筛选泛型列表

本文关键字:泛型 列表 筛选 | 更新日期: 2023-09-27 18:27:57

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

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

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

按多个值筛选泛型列表

您需要||:

result = listD.Where(doc=> doc.DocID == 1 || doc.DocID == 2);

result = from docs in listD where docs.DocID == 1 || docs.DocID == 2 select docs;

你的DocID可以是12,不可能两者都是。您当前的条件是使用&&,这意味着它必须同时为12

用于分配DataSource调用ToList,如:

rptDocs.DataSource = result.ToList();

docs.DocID == 1 && docs.DocID == 2永远不可能为真:如果值为1,则不是2,反之亦然。您需要使用||(或),而不是&&(和)

请更改&amp;到||并查看它是否工作

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

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逻辑运算符。