如何使用 LINQ 查询获取名称以数字开头的产品名称列表。?

How to get the List of products name whose name starts with numbers using LINQ query.?

我有一个 table,我想从中检索名称以 0 到 9 开头的产品列表。 代码片段。

List<string> searchItems = new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };

.....Where(x=> searchItems.Any(y=> y.StartsWith(x.ProductName))).ToList();

我没有得到产品列表,得到 0 条记录,任何人请给我建议一个更好和正确的查询。 提前致谢。

尝试 x.ProductName.StartsWith(y) 而不是 y.StartsWith(x.ProductName)

你现在的做法是在问 "1".StartsWith("Your Product name")

让我们使用适当的标识符。这将帮助您找到错误:

var result = products.Where(product => searchItems.Any(
    searchItem => searchItem.StartsWith(product.ProductName)))

因此您只保留那些具有 ProductName 的产品,其中至少有一个搜索项以此名称开头。

  • 您的搜索项目:1 2 3 4 5 6 7 8 9
  • ProductName = 19987.

是否有以产品名称 19987 开头的搜索项?

I have a table from where i want to retrieve the list of products whose name starts with 0 to 9.

如果您改写此查询将很简单:

I want to query all products that have a ProductName that starts with a digit

var productsWithDigitStartName = dbContext.Products
    .Where(product => Char.IsDigit(product.ProductName[0]));