按多个值筛选泛型列表
本文关键字:泛型 列表 筛选 | 更新日期: 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
可以是1
或2
,不可能两者都是。您当前的条件是使用&&
,这意味着它必须同时为1
和2
。
用于分配DataSource
调用ToList
,如:
rptDocs.DataSource = result.ToList();
docs.DocID == 1 && docs.DocID == 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逻辑运算符。