Flo*_*ind 3 c# linq asp.net-mvc lambda
大家好我有一个从我的模型中的数据库获得的linq列表.现在我有一个从我的控制器获得的字符串数组.我想构建一个声明
伪代码
List<object> objlist = db.objects.tolist();
string[] strarray; // obtained from a long code.
var k = objlist.Where(u => u.somecol == strarray[0] || u.somecol == strarray[1]........strarray[n]).toList();
Run Code Online (Sandbox Code Playgroud)
我有点困惑如何实现这一点,因为我strarray[]的长度可变,最多可包含1000个单词.
您可以使用Array.IndexOf <T>方法检查数组是否包含某个项目:
bool strarrayContainsX = Array.IndexOf<string>(strarray, "X") >= 0;
Run Code Online (Sandbox Code Playgroud)
但是,我建议您使用HashSet <string>而不是字符串数组来处理多个项目.HashSet <T>类提供了一个Contains方法来检查一个集合是否包含某个项目:
HashSet<string> strset = new HashSet<string>(strarray);
bool strsetContainsX = strset.Contains("X");
Run Code Online (Sandbox Code Playgroud)
结果查询如下所示:
var k = objlist.Where(u => strset.Contains(u.somecol)).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13874 次 |
| 最近记录: |