gpt4 book ai didi

c# - Linq 使用稍微复杂的选择列表

转载 作者:行者123 更新时间:2023-11-30 20:58:10 25 4
gpt4 key购买 nike

这是一个简化的选择列表

<select name="stuff">
<option value="">All</option>
<option>Test</option>
<option>Test1</option>
<option>Test2</option>
<option>Horses</option>
</select>

根据选择列表中的值,我希望从我的表中找到相关值。

林奇

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))

选择“所有”选项时,以前的解决方案将正常工作。由于 All 由空字符串 stuff 表示,因此 .Contains 将在任何情况下返回 true。选择 Test 时会中断,因为它还会返回 Test1Test2

第二个解决方案 (==) 适用于除所有 之外的所有情况,如果我想将其用于多选列表,则会中断。

第三个解决方案将正确处理 All,但如果 Test 是,它仍将返回 Test1Test2已选中。

如何修改此代码以使用All、多选以及仅选择精确值?

最佳答案

不管怎样,您都需要添加一个特例来覆盖“All”,因为它很特别。例如,您可以这样重写您的第二个解决方案:

someTable.Where(r => string.Empty == stuff || r.someField == stuff);

关于c# - Linq 使用稍微复杂的选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com