Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Linq通过列表搜索到Linq_C#_Linq_Contain - Fatal编程技术网

C#Linq通过列表搜索到Linq

C#Linq通过列表搜索到Linq,c#,linq,contain,C#,Linq,Contain,对象: ticketTypeRep = new TicketTypeRepository(); packageRep = new PackageRepository(); 数据来自用户搜索的此列表: var pases = ticketTypeRep.Fetch() .Where(x => x.VTP_NOMBRE_PASE.ToUpper().Trim().Contains(searchString.ToUpper().Trim())) .Select(x =>

对象:

ticketTypeRep = new TicketTypeRepository();
packageRep = new PackageRepository();
数据来自用户搜索的此列表:

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();
我正试图用这些数据作为一个列表来搜索另一个列表中的每个项目

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();
问题是“21”必须是第一个名为pases的列表的结果,而不是一个简单的字符串


我猜,通过列表搜索linq。

您想要的是以另一种方式进行比较,如:

passes.Contains(x.PKG_TICKETTYPE.Trim())
请记住,这不是
字符串。而是包含

所以你的问题是:

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();
var packageWithPase = packageRep.Fetch()
                                .Where(x => pases.Contains(x.PKG_TICKETTYPE.Trim())
                                .Select...

还不完全清楚您想要什么,但看起来您想要的是
pases
包含
PKG\u TICKETTYPE
值的记录,该值为:

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();
var packageWithPase = packageRep.Fetch()
                                .Where(x => pases.Contains(x.PKG_TICKETTYPE.Trim())
                                .Select...

我已经格式化了您的代码片段,但这样做会引入语法错误(**分散)。您可能应该检查您问题中的代码(仅供参考,缩进四个空格以创建标记中的代码块)谢谢@mikeTheLiar:)谢谢Habib,我将此输入:var packageWithPase=packageRep.Fetch()。其中(x=>passs.contains(x.TICKETTYPE.trim())@Roberto2790,是的。我使用了与您问题中相同的查询。