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

C# 如何使用LINQ查询获取名称以数字开头的产品名称列表。?,c#,linq,linq-to-sql,linq-to-entities,C#,Linq,Linq To Sql,Linq To Entities,我有一个表,我想从中检索名称以0到9开头的产品列表。 代码片段 List searchItems=新列表{“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”} …其中(x=>searchItems.Any(y=>y.StartsWith(x.ProductName))).ToList() 我没有得到产品列表,得到0条记录,任何人请给我一个更好、正确的查询。 提前感谢。尝试x.ProductName.StartsWith(y)而不是y.StartsWith(x.Prod

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

List searchItems=新列表{“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“0”}

…其中(x=>searchItems.Any(y=>y.StartsWith(x.ProductName))).ToList()

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

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


您现在的做法是询问
“1”.StartsWith(“您的产品名称”)

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


您现在的做法是询问“1”。开始使用(“您的产品名称”)

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

var result = products.Where(product => searchItems.Any(
    searchItem => searchItem.StartsWith(product.ProductName)))
因此,您只保留那些具有ProductName的产品,其中至少有一个搜索项以该名称开头

  • 你的搜寻项目:123456789
  • ProductName=19987
是否有以产品名称19987开头的搜索项

我有一个表,我想从中检索名称以0到9开头的产品列表

如果重新表述,查询将很简单:

我想查询所有产品的产品名称以数字开头


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

var result = products.Where(product => searchItems.Any(
    searchItem => searchItem.StartsWith(product.ProductName)))
因此,您只保留那些具有ProductName的产品,其中至少有一个搜索项以该名称开头

  • 你的搜寻项目:123456789
  • ProductName=19987
是否有以产品名称19987开头的搜索项

我有一个表,我想从中检索名称以0到9开头的产品列表

如果重新表述,查询将很简单:

我想查询所有产品的产品名称以数字开头


searchItems
是单个字符串的列表。
product.ProductName
不太可能是单个字符串,因此
searchItem.StartsWith(product.ProductName)
几乎总是
false
。现在,
product.ProductName.StartsWith(searchItem)
很可能是OP想要的。
searchItems
是一个单字符串列表。
product.ProductName
不太可能是单个字符串,因此
searchItem.StartsWith(product.ProductName)
几乎总是
false
。现在,
product.ProductName.StartsWith(searchItem)
更有可能成为OP想要的。