[英]C# Linq Search by a list into a linq
Objects: 对象:
ticketTypeRep = new TicketTypeRepository();
packageRep = new PackageRepository();
The data comes from a this list searched by the user: 数据来自用户搜索的以下列表:
var pases = ticketTypeRep.Fetch()
.Where(x => x.VTP_NOMBRE_PASE.ToUpper().Trim().Contains(searchString.ToUpper().Trim()))
.Select(x => new { id = x.VTP_COD_TIPOPASE}).ToList();
Im trying to use that data as a list to search every item in another list 我正在尝试使用该数据作为列表来搜索另一个列表中的每个项目
var packageWithPase = packageRep.Fetch()
.Where(x => x.PKG_TICKETTYPE.Trim().Contains("21"))
.Select(x => new { id = x.PKG_SEQID, name = x.PKG_NAME, state = x.PKG_STATE, details = x.PKG_SEQID, edit = x.PKG_SEQID })
.OrderBy(x => x.name).ToList();
The thing is that "21" have to be the result of the first list named pases and not a simple string. 问题是“ 21”必须是第一个名为pases的列表的结果,而不是简单的字符串。
Search by a list into a linq I guess. 我想通过列表搜索到linq。
What you want is to do the comparison other way round like: 您想要做的是另一种比较方式,例如:
passes.Contains(x.PKG_TICKETTYPE.Trim())
Remember this is not String.Contains
instead it is Enumerable.Contains So your query would be: 记住这不是
String.Contains
而是Enumerable.Contains所以您的查询将是:
var packageWithPase = packageRep.Fetch()
.Where(x => passes.Contains(x.PKG_TICKETTYPE.Trim())
.Select(x => new
{
id = x.PKG_SEQID,
name = x.PKG_NAME,
state = x.PKG_STATE,
details = x.PKG_SEQID,
edit = x.PKG_SEQID
}).OrderBy(x => x.name)
.ToList();
It's not entirely clear what you want but it looks like you want records where pases
contains the PKG_TICKETTYPE
value, which would be: 尚不清楚您想要什么,但是看起来您想要记录其中
pases
包含PKG_TICKETTYPE
值的记录,该值将是:
var packageWithPase = packageRep.Fetch()
.Where(x => pases.Contains(x.PKG_TICKETTYPE.Trim())
.Select...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.