gpt4 book ai didi

c# - 在列表中搜索列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:23 24 4
gpt4 key购买 nike

我正在使用 Linq 查询进行搜索,我有一个列表 productList,我正在其中搜索一些数据,其中的一部分我有另一个列表 IQProductSkuList以上列表。

所以我必须将数据搜索到整个检索到的数据中,但是每当我要在另一个列表中的列表中查找时,它都会出现如下错误。

Can not implicitly convert type 'System.Linq.Iqueryable' to bool

Can not convert lambda expression to intend delegate because some of the return type in the block are not implicitly convertible to the delegate return type

这是我的代码

首先在主列表上搜索

 productList = productList.Where
(x =>
(x.ProductName ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
|| (x.ProductAbbreviation ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
|| (x.ProductDisplayName ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
|| (x.DestinationName ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
|| (x.DestinationCityName ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
);

它工作正常,但是当我在 productList 中搜索列表时,它给出了一个错误。

下面是在抛出异常的列表中搜索列表的代码。

productList = productList.ToList().Where(x => x.IQProductSkuList.Where
(
x => (x.SKUCode ?? "").ToLower().Contains(searchingkey.ToLower().Trim()))
);

请帮助我任何形式的帮助将不胜感激..

最佳答案

Any是你要找的。它返回:

true if the source sequence contains any elements; otherwise, false.

productList = productList.ToList().Where(x => x.IQProductSkuList.Any
(
x => (x.SKUCode ?? "").ToLower().Contains(searchingkey.ToLower().Trim())
));

实际上是Where方法要求它。如果您查看文档,您会发现它需要这种类型的参数:

predicate
Func<TSource,Boolean>
A function to test each element for a condition.

这意味着函数的输入类型是 TSource并且返回值必须是 Boolean 类型.

Any 的返回类型匹配:

Returns
Boolean

你的问题是因为 Where 的返回值不匹配方法:

Returns
IEnumerable<TSource>

关于c# - 在列表中搜索列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52074562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com