不确定为什么会发生,我在调试模式下观察到它,并且LINQ内的条件得到满足
if (chkSometing.Checked)
{
var _results = from itemlist in dtResult.AsEnumerable()
where itemlist.Field<string>("data_visibility").Contains("both")
select itemlist;
try { dtResult = _results.CopyToDataTable(); }
catch (Exception ex) { Response.Write(ex.Message); }
}
答案 0 :(得分:2)
尽管您可能已经解决了该问题,但我可以解释为什么“包含”无效,而“任何”在这种情况下都能正常工作。
包含检查序列是否包含元素。
Any检查序列中的任何元素是否满足条件。它像一个谓词。
因此,如果您要检查序列的元素是否满足条件,请使用“任何”。下面的示例:
List<string> list = new List<string> { "a", "aa", "aaa", "b", "c" };
bool containsBoy = list.Contains("c"); //true
// list.ElementAt(0).Contains("c") // --> Error which is what you are getting
bool anyBoy = list.Any(r => r.Length == 2); // true for "aa"
来源: What is the difference between Contains and Any in LINQ?