比如我想通过list 列表1万条,来进行筛选包含白色的 文本结果有1000条,但是我只需要前面的20条结果。请问如何便捷高效的去编辑?
如果能在这个里面添加一个,截取top多少条数据,就更好了。不用再后面步骤去解决,节省处理资源
可以再把{list2}截取下的
$= var a = {list}.Where( x => x.Contains("白色") ).ToList(); if (a.Count <= 20) { return a; } else { return a.GetRange(0,20); }
过于冗长,楼下发了个简便写法
更简便的写法
$={list}.Where( x => x.Contains("白色") ).ToList().Take(20)
测试过可以用,速度挺快的。大神厉害啊。我想问问,如果是两种或者是三种 包含文本,该怎么写表达式呢?,比如既包含 “白色”和“韩版”和“新款”
$={list}.Where(w => {keyword}.Any(a => w.Contains(a))).ToList().Take(20)
关键词放到列表变量{keyword}里
大神你好,我测试过,不行。{keyword} 只能筛选 列表第一个的结果,第二个文本无法筛选。
需求逻辑是这样的;在列表中筛选, 该行同时包含三个文本:白色,韩版,新款。 然后输出到列表结果。
$={list}.Where(x => Regex.IsMatch(x,@"(?=.*白色)(?=.*韩版)(?=.*新款)^.*")).ToList().Take(20)
这个很好,可以用。但是$={list}.Where(x => Regex.IsMatch(x,@"(?=.*{变量A})(?=.*{变量B})(?=.*{变量C})^.*")).ToList().Take(20), 或者是:$${list}.Where(x => Regex.IsMatch(x,@"(?=.*{变量A})(?=.*{变量B})(?=.*{变量C})^.*")).ToList().Take(20)就无法正常使用了。 能不能把 那几个词弄成变量啊?不太会写代码
$={list}.Where(x => Regex.IsMatch(x,@"(?=.*"+{变量A}+")(?=.*"+{变量B}+")(?=.*"+{变量C}+")^.*")).ToList().Take(20)
$$是文本,不是表达式
$={list}.Where(w => {keyword}.All(a => w.Contains(a))).ToList().Take(20)
这样写可以了。关键词放到列表变量{keyword}里
如果你只有3个关键词,楼上网友臭冬瓜的也可以。不用再合并成关键词列表了
可以,都很好。谢谢啦。
这个很好用,我已经 用上了。 大神,请问 如果不区分字母的大小写包含,该怎么写表达式呢?
比如:{list} 有一些数据为 abcd123,ABCD123, 然后{keyword} 输入的为:aBcD , 希望都可以筛出 两个结果,不用区分大小写的筛选。
$={list}.Where(w => {keyword}.All(a => w.ToLower().Contains(a.ToLower()))).ToList().Take(20)
CL牛,搞定啦。谢谢。 我是用来这个代码来 :实时搜索 功能配合使用的。 搜索商品sku名称用的。