Linq to work with slightly complex selectlist
这是一个简化的选择列表
1 2 3 4 5 6 7 | <select name="stuff"> <option value="">All</option> <option>Test</option> <option>Test1</option> <option>Test2</option> <option>Horses</option> </select> |
基于选择列表中的值,我希望从我的表中找到相关的值。
林克
1 2 3 4 5 6 | 1. someTable.Where(r => r.someField.Contains(stuff)); 2. someTable.Where(r => r.someField == stuff); 3. var a = someTable; if(stuff != null) a = a.Where(r => r.someField.Contains(stuff)) |
选择"全部"选项后,前一个解决方案将正常工作。由于所有都由空字符串表示,因此对于任何情况,
第二个解决方案(==)对于除"全部"之外的所有情况都可以正常工作,并且如果我想将其用于多个选择列表,它将中断。
第三个解决方案将正确处理所有问题,但如果选择了测试,它仍然会返回test1和test2。
如何修改此代码以使用
不管怎样,您需要添加一个特殊的案例来涵盖
1 | someTable.Where(r => string.Empty == stuff || r.someField == stuff); |