var classify=["可乐","鸡腿","汉堡"];
data = data.Where(s => s.classify=="可乐"|| s.classify=="鸡腿"|| s.classify=="汉堡");
如上,Lambda 的值如何筛选一个数组,前提不知道数组有什么内容,要遍历筛选包含这些值的东西
var classify=["可乐","鸡腿","汉堡"];
data = data.Where(s => s.classify=="可乐"|| s.classify=="鸡腿"|| s.classify=="汉堡");
如上,Lambda 的值如何筛选一个数组,前提不知道数组有什么内容,要遍历筛选包含这些值的东西
List<string> classify=["可乐","鸡腿","汉堡"];
data = data.Where(s => classify.Contains(s.classify)).ToList();
你代码语法有问题。
1、
// 字符串数组不是这么创建的
var classify=["可乐","鸡腿","汉堡"];
2、
// s.classify 如果要这么用,你的data必须包含classify字段
data = data.Where(s => s.classify=="可乐"|| s.classify=="鸡腿"|| s.classify=="汉堡");
// 假设你的 data 变量也是字符串数组
data = data.Where(s => s.classify=="可乐"|| s.classify=="鸡腿"|| s.classify=="汉堡");
给予一下解决方案
static void Main(string[] args)
{
// 数据库
var data = new string[] { "咖啡", "果茶", "奶茶", "可乐", "苏打水", "汉堡" };
// 查询
var classify = new string[] { "可乐", "鸡腿", "汉堡" };
// 为了方便阅读代码,将查询委托独立出来
Func<string, bool> predicate =
p => classify.Any(x => x == p);
// 循环输出结果
data.Where(predicate)
.ToList()
.ForEach(item =>
{
Console.WriteLine(item);
});
}